我在上传图像到服务器上有一个问题,以便更好地向您解释我的问题,我准备了一对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();
我已经在我的博客上写了关于它的教程。不过是用印尼语写的。在你的问题中,这是因为你只上传了一个文件。您需要重复添加上传字段的过程。