Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将文件从操作发送到Servlet_Java_File_Servlets_Upload - Fatal编程技术网

Java 将文件从操作发送到Servlet

Java 将文件从操作发送到Servlet,java,file,servlets,upload,Java,File,Servlets,Upload,我的目标是将一个文件从一个动作上传到一个servlet 直到现在,我还以为它是这样工作的: 操作:将文件读取为bytearray,将其转换为字符串,并根据请求放置字符串 HttpURLConnection conn =null; String url = "http://myServlet"); URL obj = new URL(url); conn = (HttpURLConnection) obj.openConnection(); conn.setDoOutput(true);

我的目标是将一个文件从一个动作上传到一个servlet

直到现在,我还以为它是这样工作的:

  • 操作:将文件读取为bytearray,将其转换为字符串,并根据请求放置字符串

    HttpURLConnection conn =null;
     String url = "http://myServlet");
    URL obj = new URL(url);
     conn = (HttpURLConnection) obj.openConnection();
    conn.setDoOutput(true);
      conn.setRequestMethod("GET");
      StringBuffer requestParams = new StringBuffer();
      requestParams.append("fileString");
      requestParams.append("=").append(URLEncoder.encode(fileString, "ISO-8859-1"));
     //Append more params
     OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
     wr.write(requestParams.toString());
     wr.flush();
    conn.getContentLength();
    
  • Servlet:获取字符串参数,将其转换回bytearray并重新创建文件

       receivedString = request.getParameter("fileString");
        //Convert to bytearray and create file
    
但我想这不是一个好的解决方案,因为有时候调用会因为字符串而失败(可能是长度?)


哪种方式是发送我的文件的正确方式?我找不到发送文件和附加信息的方法,无法将它们放入请求中。

请尝试这种方法1)。将附加信息作为URL本身中的查询字符串传递2)使用POST请求而不是GET发送实际的文件内容。感谢您提供的提示,但仍然不起作用(如果我没有弄错的话)