⼩程序开发之图⽚上传+Java服务端接收
Mark⼀下,也希望可以帮助其他⼈
弄了两天,⽹上的其他的都有问题,⽐较完善的⼀个还是空指针,好吧,还是继续百度然后根据别⼈的⾃⼰改⼀下!(本地⼩程序和postman调试上传成功,后续线上再测试)
注:⽔平有限,可能有需要完善的地⽅,或者不好的地⽅,若发现,希望指出来O(∩_∩)O哈哈~ 共同进步。
参考
package com.lovepet.ller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.lovepet.petmon.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.UUID;
/**
* 图⽚上传
*
* @author FanChen
* @since 2018年6⽉1⽇上午12:46:29
*/
@Controller
@RequestMapping("/upload")
public class UploadController {
private static final Logger logger = Logger(UploadController.class);
@RequestMapping("/picture")
public void uploadPicture(HttpServletRequest request, HttpServletResponse response) throws Exception {
Result result = new Result();
//获取⽂件需要上传到的路径
File directory = new File("..");
String path = CanonicalPath() + "\\upload\\";
// 判断存放上传⽂件的⽬录是否存在(不存在则创建)
File dir = new File(path);
if (!ists()) {
dir.mkdir();
}
logger.debug("path=" + path);
request.setCharacterEncoding("utf-8"); //设置编码
JSONArray jsonArray = new JSONArray();
try {
StandardMultipartHttpServletRequest req = (StandardMultipartHttpServletRequest) request;
Iterator<String> iterator = FileNames();
while (iterator.hasNext()) {
HashMap<String, Object> res = new HashMap<String, Object>();
MultipartFile file = ());
/
/ 获取⽂件名
String fileNames = OriginalFilename();
int split = fileNames.lastIndexOf(".");
//获取上传⽂件的后缀
String extName = fileNames.substring(split + 1, fileNames.length());
//申明UUID
String uuid = UUID.randomUUID().toString().replace("-", "");
//组成新的图⽚名称
String newName = uuid + "." + extName;
System.out.println(newName);
String destPath = path + newName;
logger.debug("destPath=" + destPath);
//真正写到磁盘上
File file1 = new File(destPath);
OutputStream out = new FileOutputStream(file1);
out.Bytes());
res.put("url", destPath);
// result.setValue(jsonArray);
jsonArray.add(res);
out.close();
}
} catch (Exception e) {
<("", e);
}
result.setValue(jsonArray);
PrintWriter printWriter = Writer();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
printWriter.JSONString(result));
printWriter.flush();
}
}
说明:
Result result = new Result(); 这个是我⾃⼰定义的返回格式,可以去掉或改成⾃⼰的格式(下⾯已更新)
===============2020-03-17===更新Result(看到有需要的,更新了,希望可以帮到你)============ st.healthmon;// 你⾃⼰的⽂件位置
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Map;
import lombok.EqualsAndHashCode;
import com.alibaba.fastjson.JSONObject;
/**
* 类Result的实现描述:API接⼝返回结果封装类
*
* @author fanchen
*/
@EqualsAndHashCode
public class Result<T> implements Serializable {
private static final long serialVersionUID = -4531596261772981584L; private boolean isSuccess = true;
private String errorMsg;
private String errorCode;
private T value;
private Map<String, Object> extraInfo;
public Result() {
super();
}
/**
* 初始化结果值
*
* @param value 结果值
*/
public Result(T value) {
super();
this.value = value;
}
/
**
* 初始化错误信息,会设置<code>isSuccess = false</code>
*
* @param errorMsg 错误信息
* @param errorCode 错误代码
*/
public Result(String errorMsg, String errorCode) {
super();
this.isSuccess = false;
}
/**
* @param success 是否成功
* @param errorMsg 错误信息
* @param errorCode 错误代码
*/
public Result(boolean success, String errorMsg, String errorCode) { super();
this.isSuccess = success;
}
/
**
* @return 是否成功
*/
public boolean isSuccess() {
return isSuccess;
}
/**
* @param success 设置是否成功
*/
public void setSuccess(boolean success) {
isSuccess = success;
}
/**
* @return 错误信息
*/
public String getErrorMsg() {
return errorMsg;
}
/**
* @param errorMsg 设置错误信息
*/
public void setErrorMsg(String errorMsg) {
}
/**
* @return 错误代码
*/
public String getErrorCode() {
return errorCode;
}
/**
* @param errorCode 设置错误代码
*/
public void setErrorCode(String errorCode) {
}
/**
* @return 结果值
*/
public T getValue() {
return value;
}
/**
* @param value 设置结果值
*/
public void setValue(T value) {
this.value = value;
}
/**
* @return 扩展信息
*/
public Map<String, Object> getExtraInfo() {
return extraInfo;
}
/**
* @param extraInfo 设置扩展信息
*/
public void setExtraInfo(Map<String, Object> extraInfo) { aInfo = extraInfo;
}
/**
* 增加扩展信息
* 增加扩展信息
*
* @param key 扩展信息中的key
* @param value 扩展信息中的value
*/
public Result<T> addExtraInfo(String key, Object value) {
if (aInfo == null) {
}
return this;
}
/**
* 获取扩展信息
*
* @param key 扩展信息中的key
* @return 扩展信息中的value
*/
public Object getExtraInfo(String key) {
aInfo == null ? null : (key);
}
@Override
public String toString() {
JSONString(this);
}
}
返回结果是这样的(这个是上传两张图⽚,Postman就可以上传测试):
有趣的java小程序附上⼩程序的代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论