图片上传到服务器
layui框架
HTML
<div class="layui-form-item">
<label class="layui-form-label">照片</label>
<div class="layui-input-block">
<button type="button" class="layui-btn" id="upload1">上传图片</button>
<input type="hidden" id="img_url" name="url" value=""/>
<div class="layui-upload-list">
<img class="layui-upload-img" width="100px" height="80px" id="demo1"/>
<p id="demoText"></p>
</div>
</div>
</div>
script
<script type="text/javascript">
//图片上传
layui.use('upload', function(){
var upload = layui.upload
, $ = layui.jquery;
var uploadInst = upload.render({
elem: '#upload1' //绑定元素
,url: "template/img.do" //上传接口
,before: function(obj){
//预读本地文件示例,不支持ie8
obj.preview(function(index, file, result){
$('#demo1').attr('src', result); //图片链接(base64)
});
}
,done: function(res){
//如果上传失败
if(res.code > 0){
return layer.msg('上传失败');
}
//上传成功
alert("上传成功");
document.getElementById("img_url").value = res.url;
}
,error: function(){
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
});
});
</script>
控制层
/**
* @Method 图片上传
* @author
* @createTime
*/
@RequestMapping(value = "img" , method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> upload(HttpServletRequest servletRequest,HttpServletRequest request,
@RequestParam("file") MultipartFile file
) throws IOException {
//如果文件内容不为空,则写入上传路径
if (!file.isEmpty()) {
//上传文件路径
//获取服务器位置
String pathss = request.getSession().getServletContext().getRealPath("");
//这些是项目需要 要改变路径
String paths = pathss.substring(0,pathss.indexOf("admin"));
String ll = "admin-img";
String path =paths + ll;
System.out.println("路径"+path);
System.out.println("文件名称"+file.getOriginalFilename());
//上传文件名
String filename = file.getOriginalFilename();
File filepath = new File(path, filename);
//判断路径是否存在,没有就创建一个
if (!filepath.getParentFile().exists()) {
filepath.getParentFile().mkdirs();
}
//将上传文件保存到一个目标文档中
File file1 = new File(path + File.separator + filename);
file.transferTo(file1);
Map<String, Object> res = new HashMap<>();
//返回的是一个url对象
res.put("url", file1);
return res;
} else {
return null;
}
}
上传成功后页面回显照片
html页面里有隐藏 input 保存图片路径
至此文件上传任务已经完成了,现在表单中隐藏的input已经保存了文件的url,那么,接下来就是简单的纯文本form提交。这个不难,用ajax提交行,正常提交也可以。
另外这是我的第一篇博客