最新の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 に置き換えられますが、これはファイルの作成時に認識されません。
どんな助けでも大歓迎です。