年级: 2019级 姓名:梁峻豪 性别:男
本技术文献起止时间 2020 年 08 月 05 日 ~ 2020年 08 月 09 日
文献种类:所学知识文献;
开发工具与关键技术:VS-( 图片的上传 )
作者: 梁峻豪 ;年级:1902 ;撰写时间:2020 年 08 月 07日
在日常的上传中我们常常会涉及到图片的上传,那么如何把图片上传到页面中呢?
下图是图片上传成功的样子,下面我们就来分析一下代码
我们在控制器中创建一个方法,并给它一个参数file来接收页面传过来的数据,因为页面过来的数据是文件,所以参数的类型必须是文件类
我们首先使用try catch来捕捉一下错误,防止这段代码出错导致后面的代码不能运行
Try
{
第一步:
//我们先判断头像的路径是否存在,如果存在它返回true所以我们用”!”让他不存在
if(!System.IO.Directory.Exists(Server.MapPath("~/Document/userPicture/")))
{
//接下来我们创建一个目录,然后指定它的路径
System.IO.Directory.CreateDirectory(Server.MapPath("~/Document/userPicture/"));
}
第二步:
//判断是否上传了图片, ContentLength是文件的长度,下列条件判断文件是否存在
if (userPicture != null && userPicture.ContentLength > 0)
{
//接下来获取文件的扩展名称(根据文件的名称去拿到文件的后缀)
string imgExtension = System.IO.Path.GetExtension(userPicture.FileName);
//拼接要保存的文件名称(文件名避免重复所以拼接一个新的文件名)
string fileName = DateTime.Now.ToString(“yyyyMMddHHmmssffff”)
//Guid主要是用来创建一串编号(字符串)
- “_” + Guid.NewGuid() + imgExtension;
//拼接文件保存的路径
tring filePath = Server.MapPath("~/Document/userPicture/") + fileName;
//保存上传的文件到硬盘
userPicture.SaveAs(filePath);
//文件名称保存到user对象,一般不会存完整的路径(也就是绝对路径)
user.picture = fileName;
}
catch (Exception e)
{
Console.WriteLine(e);
msg.Text = “数据保存异常”;
}
注意:我们一般不会存文件的保存路径,因为我们存的这个保存路径一般是全路径,也就是绝对路径。我们不会直接去存绝对路径,我们会去存一个名字,然后后面去拼接都可以。直接存绝对路径的话这样的扩展性会很差。比如以后在本机开发完了,在服务器上去部署的时候有可能服务器上和本机的路径就不太一样,这里用到相对路径会比较好。
扩展:AutoResizeImage()是一个方法是用来设置传输过来图片的宽度和高度以免图片过大影响页面样式.