java - Android 多文件上传到服务器

标签 java android file upload image-uploading

我在将图像上传到服务器时遇到问题,为了更好地向您解释我的问题,我准备了一对 PHP 脚本来模拟我想要发生的情况。

PHP upload file ///////////////////////////////////////////////////////////////////// 
<form  enctype="multipart/form-data"  action=destination.php method=post>
<input  type=file name=file1 />
<input  type=file name=file2 />
<input  type=submit name=submit />
</form>


    PHP destination file ////////////////////////////////////////////////////////////////

<?php

$files = array('file1', 'file2', 'file3');
$path = 'elp/pendingimages/';

foreach ($files as $file) {
    if ($_FILES[$file]['error'] > 0) {
        echo 'Error: '. $_FILES[$file]['error'] .'<br />';
    }
    else {
        echo 'Upload: '. $_FILES[$file]['name'] .'<br />';
        echo 'Type: '. $_FILES[$file]['type'] .'<br />';
        echo 'Size: '. ($_FILES[$file]['size'] / 1024) .' Kb<br />';
        echo 'Stored in: '. $_FILES[$file]['tmp_name'] .'<br />';
    }
}

?>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

让目标文件保持原样,因为我无法控制服务器,我希望在 JAVA 代码中具有与上传文件相同的功能。我已经有了这个,但我的问题是服务器中只插入了一行

FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);
conn = (HttpURLConnection) url.openConnection(); // Open a HTTP connection to the URL
conn.setDoInput(true); // Allow Inputs
conn.setDoOutput(true); // Allow Outputs
conn.setUseCaches(false); // Don't use a Cached Copy
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("image[]", fileName);
dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"image[]\";filename=\"" + fileName + "\"" + ";user_id=\"157\"" + lineEnd);
dos.writeBytes(lineEnd);
dos.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();

最佳答案

我写了tutorial about it在我的博客上。不过,这是印度尼西亚语。您的问题是因为您只上传了一个文件。您将需要重复添加上传字段过程。

关于java - Android 多文件上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983426/

相关文章:

c++ - 在 Windows 内核设备驱动程序中使用 fprintf

c# - 在 C# 中可以打开的最大文件数是否有限制?

java - 对 CSVPrinter 对象调用 close() 两次

java - 一个数据类型只能有 2 个值吗?或者只能有 n 个值?

java - 如何使用数组将 csv 转换为 json

java - 如何在Android中使用XMLRPC调用magento的 "cart_payment.method"API

javascript - nodejs读取文件,写入临时文件然后复制并替换原文件

Java:构造函数不返回。但它确实如此吗?

Java - 如何将一串字母转换为具有相应数值的数组?

java - 使用 PATTERN MATCHER 解析 NMEA 数据