(考虑用,事少来最差端在事路原们这制码效移,动到window系统和linux系统兼容,后期对接口做了朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏调整)
效果:
Html
职业
血型
配图
上传
主要作品
Css略过.....比抖朋要插支一圈不者地.
Js
//图片上传
$(function () {
//只有选择不同图片才会调用,选择同一张不会调用
$("#uploadspan").change(function (e) {
//console.log(e.target.files[0])
var file = e.target.files[0] || e.dataTransfer.files[0];
if (file) {
var reader = new FileReader();
reader.onload = function () {
$("#headPic").attr("src", this.result);
}
reader.readAsDataURL(file);
//调用上传接口,拿到服务器图片地址,提交表单直接提交服务器src
saveImage();
}
});
})
function saveImage() {
//var file = $("#file").prop('files');file[0].src
// var file=$("#upload");
var formData = new FormData();
formData.append('upload', $("#upload")[0].files[0]);
$.ajax({
url: "../upload/img",//文档接口
type: "post",
data: formData,
contentType: false,
processData: false,
mimeType: "multipart/form-data",
success: function (data) {
$("#picture").val("../upload/images/"+data);
console.log(data);
alert('上传成功')
},
error: function (data) {
alert('上传失败')
}
});
}
Java接口
p插新,都次过是宗现制的前搭待个断前能绿和ackage com.wasu.control直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如数ler;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Logger;
imp览始不次这得是觉砖怎可我滚脑选的方近器上ort javax.servlet.http.HttpServletReq要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标近用功的uest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
imp友,记基开前不接些前家我告对猿果水使钮控ort com.sun.tools.javac.uti朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到随l.Log;
@Controller
@RequestMapping("upload")
public class UploadController {
@Autowired
private HttpServletRequest request;
@ResponseBody
@RequestMapping("img")
public String uploadFilesSpecifyPath(@RequestParam("upload") MultipartFile uploadImg)
throws Exception {
String realpath="";
if(uploadImg!=null){
long size= uploadImg.getSize();
if(size < 10485760){//文件设置大小,我这里设置10M。
String name = uploadImg.getOriginalFilename();//直接返回文件的名字
String subffix = name.substring(name.lastIndexOf(".") + 1, name.length());//我这里取得文件后缀
String fileName=UUID.randomUUID().toString();//文件保存进来,我给他重新命名,数据库保存有原本的名字,所以输出的时候再把他附上原本的名字就行了。
String filepath=request.getRealPath("")+ File.separator + "upload"+File.separator+"images";//获取项目路径到webapp
File file=new File(filepath);
if(!file.exists()){//目录不存在就创建
file.mkdirs();
}
uploadImg.transferTo(new File(file+File.separator+fileName+"."+subffix));//保存文件
realpath=fileName+"."+subffix;
}
}
return realpath;
}
/**
* 返回斜杠拼接的字符串
* @param args
* @return
*/
public static String mergeStringWithSeparator(String...args){
StringBuilder sb=new StringBuilder();
for (String arg : args) {
sb.append(arg);
sb.append(File.separator);
}
return sb.substring(0, sb.length()-1).toString();
}
public Object add(HttpServletRequest request,@RequestParam( value="files",required=false)MultipartFile multipartFile) throws IllegalStateException, IOException {//这里一定要写required=false 不然前端不传文件一定报错。到不了后台。
String realpath="";
//获取文件名
String name="";
if(multipartFile!=null){
long size= multipartFile.getSize();
if(size >5242880){//文件设置大小,我这里设置5M。
name=multipartFile.getOriginalFilename();//直接返回文件的名字
String subffix = name.substring(name.lastIndexOf(".") + 1, name.length());//我这里取得文件后缀
String fileName="123";//文件保存进来,我给他重新命名,数据库保存有原本的名字,所以输出的时候再把他附上原本的名字就行了。
String filepath=request.getRealPath("/") + "upload"+File.separator+"images";//获取项目路径到webapp
File file=new File(filepath);
if(!file.exists()){//目录不存在就创建
file.mkdirs();
}
multipartFile.transferTo(new File(file+File.separator+fileName+"."+subffix));//保存文件
realpath=file+File.separator+fileName+"."+subffix;
}
}
return realpath;
}}
本文来源于网络:查看 >https://blog.csdn.net/baidu_39254224/article/details/84060818