将图⽚从本地上传到服务器的过程详解
将图⽚从本地上传到服务器主要分为三个过程
第⼀,准备⼯作
第⼆,图⽚显⽰在前端页⾯
第三,发送给服务器
详情:
准备⼯作怎么确定猫认主人了
1. 定义⼀个input标签,type=file,然后让他隐藏,⽤⼀个lable标签设置它的for属性指向这个input,这样就可以通过设置lable的格
式,达到⽂件上传的功能
<label for="fileupload" class="updata_file">点击这⾥上传图⽚</label>
<input type="file" id="fileupload" name="upload">
2. 还需要定义⼀个img标签,⽤来接收上传的图⽚
<img src="" id="imageview" >
让图⽚显⽰在前端界⾯
3. 在Js中设置该input的change事件,原理就是将图⽚的盘符形式的地址换成http形式的地址,再将该地址赋值给img的src属性,并让
其显⽰。
// 原理是把本地图⽚路径:"D(盘符):/image/..."转为"..."格式路径来进⾏显⽰图⽚
$("#fileupload").change(function() {
var $file = $(this);
var objUrl = $file[0].files[0];
//获得⼀个http格式的url路径:mozilla(firefox)||webkit or chrome
var windowURL = window.URL || window.webkitURL;
//createObjectURL创建⼀个指向该参数对象(图⽚)的URL
var dataURL;
dataURL = ateObjectURL(objUrl);电子 贺卡
//把url给图⽚的src,让其显⽰
$("#imageview").attr("src",dataURL);
$('#imageview').attr("style","display:inline");
});
发送给服务器
4. 通过form表单提交给服务器,第⼀需要设置form enctype="multipart/form-data",第⼆需要设置input的name属性,传⼀个参数
<input type="file" id="fileupload" name="upload">
5. 利⽤Struts2框架提供了接收图⽚的⽅法,需要接收三个参数。
第⼀个,⽂件名称,就是获取发送来的⽂件名称。private String uploadFileName;
第⼆个,是⼀个临时⽂件。private File upload;
第三个,⽂件类型。private String uploadContentType;
将图⽚从本地传到服务器,经历的过程就是先将图⽚⽣成⼀个临时⽂件存在C盘,然后再将这个临时⽂件拷贝到服务器。
调试:上传图⽚,打印这三个参数
6. 在服务器端写代码将临时⽂件从C盘copy过来
注:这⾥使⽤UUID⽣成的随机字符串给⽂件命名,避免⽂件名重复的情况发⽣
@Setter
private String uploadFileName; // ⽂件名称
@Setter
private File upload; // 上传⽂件,与form表单input发送的name名⼀样开学必备物品清单女生
@Setter
中考分数怎么查private String uploadContentType; // ⽂件类型
public String AddImg() throws IOException {
//处理上传的⽂件
if(upload!=null){
//获取⽂件扩展名
int index = uploadFileName.lastIndexOf(".");
String exName = uploadFileName.substring(index);
//随机⽣成⽂件名
田园风光的诗String uuid = UUID.randomUUID().toString();
//将⽣成的uuid中的"-"去掉,并拼接扩展名
String fileName = place("-", "") + exName;
//新建服务器接受⽂件的⽬录
String realPath = ServletContext().getRealPath("/upload");
//路径转⽂件
File file = new File(realPath);
//如果⽂件不存在,新建⽂件夹
ssr召唤阵if(!ists()){
file.mkdirs();
}
//拼接新⽂件路径
File newFile = new File(realPath + "/" + fileName);
//把临时⽂件copy过来
}
return null;
}
思路很简单:就是先获取⽂件的扩展名,然后⽣成随机的UUid,将UUid中的“-”去掉之后,拼接上扩展名就是服务器存储该图⽚的名称。然后在服务器下⾯新建⼀个⽬录upload,再利⽤pyFile()⽅法将临时⽂件copy过来
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论