文件上传

【背景】


之前做了两个网站,都用到了文件上传的功能。米老师教导我们一件事如果重复了三遍那么就要想办法用封装了。


【项目代码】


Controller代码:


string strFileName = "";
HttpPostedFileBase file = Request.Files["photo"];
string ClientPath = AppDomain.CurrentDomain.BaseDirectory + "Photo\\";
string strSavePath;
if (file == null || file.ContentLength <= 0)
{
     ViewBag.error = "文件不能为空";
     return RedirectToAction("AddInfoIndex");
}
else
{
     string strFilename = Path.GetFileName(file.FileName);
     int intFilesize = file.ContentLength;//获取上传文件的大小单位为字节byte
     string fileEx = System.IO.Path.GetExtension(strFilename);//获取上传照片的扩展名
     string strNoFileName = System.IO.Path.GetFileNameWithoutExtension(strFilename);//获取无扩展名的照片名
     string FileType = ".jpg,.png,.PNG,.JPG,.JPEG,.gif,.GIF";//定义上传照片的类型字符串
     strFileName = strNoFileName + DateTime.Now.ToString("yyyyMMddhhmmss") + fileEx;
     if (!FileType.Contains(fileEx))
     {
          ViewBag.error = "文件类型不对,只能导入.jpg,.png,.PNG,.JPG,.JPEG,.gif,.GIF格式的照片";
          return RedirectToAction("AddInfoIndex");
     }
strSavePath = Path.Combine(ClientPath, strFileName);
file.SaveAs(strSavePath);
}
</span>

View代码:


<span style="font-size:18px;"><div class="contentdiv">
@using (Html.BeginForm("AddPhoto", "ExcellentDispatch", FormMethod.Post, new { id = "upPhoto", enctype = "multipart/form-data" }))
{
       <br/>
       <img src="@Session["image"]" height="192" width="144" id="myImg"/>
       @Html.HiddenFor(a => a.photo, new { @id = "image" });
       <br />
       <input type="file" name="photo" />
       <br />
       <input type="submit" value="上传照片" οnclick=" UpPhoto() " class="allButton" />
}
</div></span>

【功能封装】


本来想把这个功能封装在一个类里面,结果有些问题暂时难以解决。就自己用Asp做了一个Demo,虽然我的ASP水平不咋的,总算是做成功了!(附Demo下载)


【总结】


1、学习要多思考。我观察当初跟自己一块做项目的同事,很多人已经对当初做项目的技术实现没有印象了,更别提深入研究了。所以我觉得并不是你做项目多了,你就多牛,而是你做项目过程中,你投入了多少,思考了多少,总结了多少。


2、实践要会,理论要懂。我感觉自己以前的学习思路有些偏激了,忽视了基础知识的重要性。只有对理论有深刻的掌握,才能灵活应用,否则只是玩别人玩剩下的东西,自己的创新就无从谈起。




评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值