String profile = request.getParameter("profile");
String fileName = UUIDUtils.get32UUID()+"."+profile.substring(profile.lastIndexOf(".") + 1);
File file = convertImagePathToMultipartFiles(profile);
MultipartFile multipartFile = new MockMultipartFile("file", fileName, null, new FileInputStream(file));
String imgUrl = null;//保存图片到图片服务器并且返回URL连接
try {
imgUrl = uploadfile1(multipartFile);
} catch (Exception e) {
throw new RuntimeException(e);
}
public static File convertImagePathToMultipartFiles(String url) throws IOException {
//对本地文件命名
String fileName = url.substring(url.lastIndexOf("."),url.length());
File file = null;
URL urlfile;
InputStream inStream = null;
OutputStream os = null;
try {
file = File.createTempFile("net_url", fileName);
//下载
urlfile = new URL(url);
inStream = urlfile.openStream();
os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != os) {
os.close();
}
if (null != inStream) {
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return file;
}
/**
* 上传头像公共方法
*
* @param imgfile
* @return
* @throws Exception
*/
public String uploadfile1(MultipartFile imgfile) throws Exception {
// Map<String, Object> params = new HashMap<String, Object>();
// 图片储存路径 (图片链接地址)
String url = "";
FastDFSClient client = null;
try {
client = new FastDFSClient("classpath:resources/file/fdfs_client.conf");
} catch (Exception e) {
e.printStackTrace();
}
byte[] outbyte = imgfile.getBytes();
// 获取文件名称
String filename = getUploadFileName1(imgfile);
String suffix = filename.substring(filename.lastIndexOf("."));
if(suffix.equals(".png") || suffix.equals(".jpg") || suffix.equals(".gif")) {
String url1 = "";
url1 = client.uploadFile(outbyte, filename.substring(filename.indexOf(".") + 1));
url = url1.substring(url1.indexOf("/") + 1);
}else {
return null;
}
// url += "http://www.joinyun.cn:30080/" + url1 + ",";
// 截取开始到长度减-1的字符串,去掉逗号
// url = url.substring(0, url.length() - 1);
// params.put("imgUrl", url);
return url;
}
/**
* 根据文件得到文件名
*
* @param multipartFile
* @return
*/
private String getUploadFileName1(MultipartFile multipartFile) {
String uploadFileName = multipartFile.getOriginalFilename();
String fileName = uploadFileName.substring(0, uploadFileName.lastIndexOf("."));
String type = uploadFileName.substring(uploadFileName.lastIndexOf("."));
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String timeStr = sdf.format(new Date());
String name = fileName + "_" + timeStr + type;
return name;
}