1

私の問題をよりよく説明するために、サーバーに画像をアップロードする際に問題があります。私がやりたいことをシミュレートする 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();
4

1 に答える 1

0

私はブログでそれについてのチュートリアルを書いています。インドネシア語ですが。あなたの問題では、ファイルを 1 つしかアップロードしていないことが原因です。アップロード フィールドの追加プロセスを繰り返す必要があります。

于 2012-12-21T03:19:36.007 に答える