• httpurlconnection发送文件到服务端并接收


    httpurlconnection发送文件到服务端并接收

    客户端

    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    /*
     * @author xk
     * 上传文件到文件服务器的客户端
     */
    public class FileUploadClient{
         public static void main(String[] args) {
           try {
    //           URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
               URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
               HttpURLConnection conn = (HttpURLConnection)url.openConnection();
               // 发送POST请求必须设置如下两行
    
               conn.setDoOutput(true);
               conn.setUseCaches(false);
               conn.setRequestMethod("POST");
               conn.setRequestProperty("Content-Type","text/html");
               conn.setRequestProperty("Cache-Control","no-cache");
               conn.setRequestProperty("Charsert", "UTF-8"); 
               conn.connect();
               conn.setConnectTimeout(10000);
               OutputStream out =conn.getOutputStream();
    
               File file = new File("C:\fileSys\test.zip");
     
               DataInputStream in = new DataInputStream(new FileInputStream(file));
    
               int bytes = 0;
               byte[] buffer = new byte[1024];
               while ((bytes = in.read(buffer)) != -1) {
                   out.write(buffer, 0, bytes);
               }
               in.close();
               out.flush();
               out.close(); 
        
               conn.getInputStream();
               conn.disconnect();
           } catch (Exception e) {
                   System.out.println("发送文件出现异常!" + e);
                   e.printStackTrace();
           }
        }
    }

    服务端

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.Action;
    import com.opensymphony.xwork2.ActionSupport;
    import com.property.PropertyUtil;
    
    public class GetFileAction extends ActionSupport {
    
        private static final long serialVersionUID = -9108080625441081032L;  
        public String execute() throws Exception   
        {       
            String rootPath = PropertyUtil.getProperty("fileSys.properties","fileSys.path");
            
            HttpServletRequest request = ServletActionContext.getRequest();
            String filePath = request.getParameter("filePath");
            String fileName = request.getParameter("fileName");
    
            InputStream input = request.getInputStream(); 
            String fileFullPath = rootPath + filePath + fileName; 
            
            File file = new File(rootPath + filePath);
            if(!file.exists()){
                file.mkdirs();
            }
            FileOutputStream fos = new FileOutputStream(fileFullPath);
    
            int size = 0;
            byte[] buffer = new byte[1024];
            while ((size = input.read(buffer,0,1024)) != -1) {
                fos.write(buffer, 0, size);
            }
            fos.close();
            input.close();
    
            return Action.NONE;   
        }   
    }

    如果用jersey,形成RESTfull webservices 就更有用了

  • 相关阅读:
    关于XCode5打开工程闪退的一种解决方案
    【转】iOS应用崩溃日志揭秘
    Cocos2d-X中字符串的处理
    【转】不要把大脑当做磁盘
    【ybt金牌导航6-3-2】区间计数(分块)(二分)
    【luogu P3807】【模板】卢卡斯定理/Lucas 定理(含 Lucas 定理证明)
    【ybt金牌导航6-2-2】【luogu CF600E】树上众数 / Lomsat gelral(树上启发式合并)
    【ybt金牌导航6-1-5】最大割(线段树分治)(线性基)
    【luogu CF1100F】Ivan and Burgers
    【ybt金牌导航8-1-4】【luogu P4151】路径最大异或和 / 最大XOR和路径
  • 原文地址:https://www.cnblogs.com/rojas/p/4627390.html
Copyright © 2020-2023  润新知