0

最新のApache HTTPmultipartを使用して、AndroidからPHPスクリプトに複数の画像を投稿しています。

次のようにマルチパートをロードするために、Androidでループを作成しました。

try {

            HttpClient client = new DefaultHttpClient();
            HttpPost post = new HttpPost(urlServer);
            MultipartEntity mpEntity = new MultipartEntity();

            //Loop to add images    
            for (int i = 0; i<selectedList.size(); i++) {
                File passFile = selectedList.get(i);
                ContentBody cbFile = new FileBody(passFile, "image/png");
                String partName = "image" + i;
                mpEntity.addPart(partName, cbFile);

            }

これは正常に機能し、次のコードを使用して最初の画像の画像を PHP に読み込みます。

uploadDir = './';      //Uploading to directory specified

$file = basename($_FILES['image0']['name']);

$uploadFile = $file;
$randomNumber = rand(0, 99999999999); 
$newName = $uploadDir . $randomNumber . $uploadFile;


if (is_uploaded_file($_FILES['image0']['tmp_name'])) {
    echo "Temp file uploaded. \r\n";
} else {
    echo "Temp file not uploaded. \r\n";
}

if ($_FILES['image']['size']> 100000000) {
    exit("Your file is too large."); 
}

if (move_uploaded_file($_FILES['image0']['tmp_name'], $newName)) {
    $maxsize = ini_get('upload_max_filesize');
    echo json_encode(
        array(
            'result'=>$newName,
            'msg'=>'Report added successfully.'
            )
        );

問題がありますが、より多くの画像を PHP に取り込むことができます。私は次のことを試しました:

$currentName = 'image' + 0;
$file = basename($_FILES[$currentName]['name']);

しかし、これは機能しません。はループを作成するため、上記の 0 は i に置き換えられますが、これはファイルの作成時に認識されません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

連結するには、プラス記号ではなくドットを使用します。

$currentName = 'image'.$i;

'image'+0 は 0 です。次に、'image0' を $currentName に置き換えます。次の行を修正することを忘れないでください。「image」ではなく「image0」を使用する必要があります。

if ($_FILES['image']['size'])...
于 2013-01-23T20:50:57.843 に答える