图片上传/修改的总结

图片上传/修改的总结


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

图片上传

1. 
图片上传,其实本质上就是(文件)上传;

2. 
图片上传到数据库的时候,通常不是把图片直接保存到数据库,而是把图片的路径或名称保存到数据库;

3. 
虽然数据库中支持把图片直接保存到数据库,但是,并不推荐这样做,因为图片

(二进制)形式的文件直接保存到数据库中,占的内存比较大,数据库加载数据/索引时,速度也会下降;会严重影响程序的运行速度;

4. 
一般情况下,都是把图片保存到硬盘上,然后再把图片的路径/名称保存到数据库上;

5. 
图片的格式分为5种,例如:.jpeg
/.png /.jpg /.gif /.bmp

6. 
Gif格式的图片一般为动态图片;

7. 
FileReader();文件读取器

8. 
使用文件读取器读取文件时,需要把文件转为URL(Base64);

9. 
图片上传时,会转换为Base64编码,其实就是(二进制)文件转Base64编码;

10.
使用jQuery发送FromData数据的方式上传文件时,必须设置


 
  
  processData: false
  
  
  告诉jQuery不要去处理发送的数据
  
 
 
  
  contentType: false
  
  
  告诉jQuery不要去设置Content-Type请求头
  
 


11.
且上传图片(文件)时只能使用post提交,不能使用get提交;

12.
图片上传时,发送到后台控制器,是以流的形式发送的;

13.
保存图片到数据库的步骤,如下:


 
  
  1.获取图片的扩展名称;
  
 
 
  
  String 变量1= System.IO.Path.GetExtension(页面传递的图片名称);
  
 
 
  
  2.拼接要保存的图片(文件)名称;
  
 
 
  
  String 变量2
  = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_" +
  Guid.NewGuid() + 变量1;
  
 
 
  
  3.拼接文件保存的路径;
  
 
 
  
  String 变量3= Server.MapPath("~/Document/userPicture/") + 变量2;
  
 
 
  
  4.保存上传的图片(文件)到硬盘;
  
 
 
  
  userPicture.SaveAs(变量3);
  
 
 
  
  5.文件名称保存到user对象;
  
 
 
  
  user.picture = 变量2;
  
 


 

修改图片

1. 
使用jQuery提交图片的时候,无论是上传图片还是修改图片,都不能直接使用

jQuery已经封装好的post提交,因为无法提交上去,必须使用jQuery的FromData提交,或者使用原生的js提交方式;

2. 
修改图片的步骤:

第一步:回填图片,并获取页面上的图片;


 
  
  1.拼接图片的路径;
  
 
 
  
  var 路径名 = "@Url.Content("~/Document/userPicture/")" +
  jsonData.picture;
  
 
 
  
  2.修改图片(src)的路径;
  
 
 
  
  $("#ID选择器").attr("src", 路径名);
  
 
 
  
  3.获取回填成功的图片
  
 
 
  
  var 变量1 = $("#id选择器 ").get(0).files[0];
  
 


      注:这里不能使用Value获取值,获取图片只能使用files[索引];

3.  
后台控制器的操作:

第二步:查询出旧的图片名称





 
  
 
 
  
  
 


 

 

 

 

 




Single()查询一条数据;

       第三步:获取新上传的图片名称,并保存;


 
  
  5.获取新图片的扩展名称;
  
 
 
  
  String 变量1= System.IO.Path.GetExtension(页面传递的新图片名称);
  
 
 
  
  6.拼接要保存的新图片(文件)名称;
  
 
 
  
  String 变量2
  = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_" +
  Guid.NewGuid() + 变量1;
  
 
 
  
  7.拼接文件保存的新路径;
  
 
 
  
  String 变量3= Server.MapPath("~/Document/userPicture/") + 变量2;
  
 
 
  
  8.保存新上传的图片(文件)到硬盘;
  
 
 
  
  userPicture.SaveAs(变量3);
  
 
 
  
  9.文件名称保存到user对象;
  
 
 
  
  user.picture = 变量2;
  
 


      第四步:把查询出来的原来旧图片删除掉;


 
  
  10.拼接旧图片的路径;
  
 
 
  
  string 旧路径名 = Server.MapPath("~/Document/userPicture/") + 旧图片名;
  
 
 
  
  11.最后删除原来图片的旧路径,并保存修改即可;
  
 
 
  
  System.IO.File.Delete(旧路径名);
  
 


4.  删除图片的步骤就是以上内容的第4.10.11条方法;

同样是需要先查询出旧的图片,然后拼接路径,再删除路径;

5.其实修改图片,就是结合了图片上传(保存)和删除图片的方法;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值