HttpServletRequest request = ServletActionContext.getRequest();
// HttpServletResponse response = ServletActionContext.getResponse();
String savePath = this.getServletContext().getRealPath("//photo");
String tempPath = this.getServletContext().getRealPath("//temp");
System.out.println(savePath+"=========");
File tmpFile = new File(tempPath);
if (!tmpFile.exists()) {
tmpFile.mkdir();
}
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024*100);
//设置上传时生成的临时文件的保存目录
factory.setRepository(tmpFile);
ServletFileUpload up = new ServletFileUpload(factory);
up.setProgressListener(new ProgressListener() {
public void update(long arg0, long arg1, int arg2) {
// TODO Auto-generated method stub
System.out.println("文件大小:"+arg1+",已处理:"+arg0);
}
});
up.setHeaderEncoding("UTF-8");
if(!ServletFileUpload.isMultipartContent(request)){
return;//传统方式获取数据
}
up.setSizeMax(1024*1024*20);
up.setFileSizeMax(1024*1024);
List list = up.parseRequest(request);
for(FileItem item:list){
if(item.isFormField()){
String name = item.getFieldName();
String value = item.getString("UTF-8");
System.out.println(name+"========"+value);
}else{
String filename = item.getName();
if(filename==null || filename.trim().equals("")){
continue;
}
//处理获取到的上传文件的文件名的路径部分,只保留文件名部分
filename = filename.substring(filename.lastIndexOf("\")+1);
System.out.println(filename+"======1");
InputStream in = item.getInputStream();
// String uuid = UUID.randomUUID().toString();
// System.out.println(uuid);
// uuid = uuid+ "_" + filename;
// String saveFilename = uuid;
System.out.println(filename+"==========2"+savePath);
FileOutputStream out = new FileOutputStream(savePath+"\"+filename);
//缓冲区
byte buffer[] = new byte[1024];
int len = 0;
while((len=in.read(buffer))>0){
out.write(buffer, 0, len);
}
in.close();
out.close();
// String message="成功";
// System.out.println(message);
}
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
我写的这个,可以用web正常运行,保存到了路径中,但是工程中看不到,原因是因为源文件里没有,无所谓了,
但是这样写的话,我怎么可以让手机端执行这个方法,把上传的东西给我,两个做一个交互