如何使用齐射库上传多个图像

时间:2017-09-07 06:02:48

标签: android android-volley

我使用以下方法上传单个图像和文本数据,但我找不到使用一个键上传多个图像的工作代码。

public static void buildPartImage(DataOutputStream dataOutputStream, byte[] fileData, String parameterName,String fileName) throws IOException {

           dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
           dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"image\"; filename=\""
                   + fileName + "\"" + lineEnd);

           dataOutputStream.writeBytes(lineEnd);

           ByteArrayInputStream fileInputStream = new ByteArrayInputStream(fileData);
           int bytesAvailable = fileInputStream.available();

           int maxBufferSize = 1024 * 1024;
           int bufferSize = Math.min(bytesAvailable, maxBufferSize);
           byte[] buffer = new byte[bufferSize];

           // read file and write it into form...
           int bytesRead = fileInputStream.read(buffer, 0, bufferSize);

           while (bytesRead > 0) {
               dataOutputStream.write(buffer, 0, bufferSize);
               bytesAvailable = fileInputStream.available();
               bufferSize = Math.min(bytesAvailable, maxBufferSize);
               bytesRead = fileInputStream.read(buffer, 0, bufferSize);
           }
           dataOutputStream.writeBytes(lineEnd);

    }

    public static void buildTextPart(DataOutputStream dataOutputStream, String parameterName, String parameterValue) throws IOException {
        dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
        dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"" + parameterName + "\"" + lineEnd);
        dataOutputStream.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd);
        dataOutputStream.writeBytes(lineEnd);
        dataOutputStream.writeBytes(parameterValue + lineEnd);
    }

0 个答案:

没有答案