Aklcoming 2016-08-03 07:10 采纳率: 0%
浏览 1656

java写的web的一个上传文件的接口,让手机端怎么访问

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正常运行,保存到了路径中,但是工程中看不到,原因是因为源文件里没有,无所谓了,
    但是这样写的话,我怎么可以让手机端执行这个方法,把上传的东西给我,两个做一个交互
  • 写回答

1条回答 默认 最新

  • threenewbee 2016-08-03 07:15
    关注

    首先你需要一个有公网ip的服务器,把你的程序部署上去(测试的话,用局域网ip也可以)
    然后让你的客户端用httpclient去上传到你的服务器。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题