zoukankan      html  css  js  c++  java
  • Java客户端通过Http发送POST请求上传文件到web服务器

    1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.net写一个页面负责处理客户端上传的文件,并根据传递的参数把文件保存到相应的目录。客户端是手机应用程序,因为没学过Android,所以我只是写了一个Java的Demo用来上传文件。

    服务端:

    public partial class _Default : System.Web.UI.Page
    {
    
        private string id = "";
        private string userName = "";
        private string type = "";
        private string fileName = "";
        //文件长度
        private long contentLength = 0;
        private static readonly string filePath = ConfigurationManager.AppSettings["filePath"];
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                id = Request["id"];
                userName = Request["user"];
                type = Request["type"];
                fileName = Request.Headers["FileName"];
                writeFile();
            }
        }
    
        /// <summary>
        /// 上传文件
        /// </summary>
        private void writeFile()
        {
            try
            {
                Stream stream = Request.InputStream;
                contentLength = stream.Length;
                string currentFilePath = filePath + userName;
                if (!Directory.Exists(currentFilePath))
                {
                    Directory.CreateDirectory(currentFilePath);
                }
    
                FileStream fileStream = File.Create(currentFilePath + @"\" + fileName);
                //每次读取的1024个字节
                byte[] bytes = new byte[1024];
                
                int numReadByte = 0;
                while ((numReadByte = stream.Read(bytes, 0, 1024)) != 0)
                {
                    fileStream.Write(bytes, 0,numReadByte);
                }
                //关闭流
                stream.Close();
                fileStream.Close();
    
        }

    Java文件上传客户端示例,(几年没搞java有点生疏了):

    import java.io.BufferedOutputStream;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    /**
     *  
     * 只是写的一个示例,filePath,和FileName根据需要进行调整。
     */
    public class MyTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            String str="http://localhost:2906/Default.aspx?id=1&user=2&type=3";
            String filePath="D:\\Wildlife.wmv";
            String fileName="Wildlife.wmv";
            try {
                URL url=new URL(str);
                HttpURLConnection connection=(HttpURLConnection)url.openConnection();
                connection.setDoInput(true);
                connection.setDoOutput(true);
                connection.setRequestMethod("POST");
                connection.addRequestProperty("FileName", fileName);
                connection.setRequestProperty("content-type", "text/html");
                BufferedOutputStream  out=new BufferedOutputStream(connection.getOutputStream());
                
                //读取文件上传到服务器
                File file=new File(filePath);
                FileInputStream fileInputStream=new FileInputStream(file);
                byte[]bytes=new byte[1024];
           int numReadByte=0;
    while((numReadByte=fileInputStream.read(bytes,0,1024))>0) { out.write(bytes, 0, numReadByte); }
    out.flush(); fileInputStream.close();
    //读取URLConnection的响应 DataInputStream in=new DataInputStream(connection.getInputStream()); } catch (Exception e) { e.printStackTrace(); } } }
  • 相关阅读:
    阿里云服务器nginx配置https协议
    com.alibaba.fastjson.JSONObject cannot be cast to java.lang.Stringcom.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
    Nginx日志报错open() "/opt/Nginx/nginx/nginx.pid" failed (2: No such file or directory)
    腾讯云COS使用前端js的api获取签名
    安装CURL 时报错GnuTLS: The TLS connection was nonproperly terminated. Unable to establish SSL connection.
    ABP项目构建
    is ok?
    JavaScript 字符串处理(截取字符串)的方法(slice()、substring()、substr() )
    医药消炎药蒲地蓝消炎片
    JavaScript 输出信息的方式
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2475883.html
Copyright © 2011-2022 走看看