了解しました。一部のクライアント向けに基本的な画像アップローダーを作成していますが、ある種のバグが発生していて、髪の毛がはがれています。
$ _FILES配列を取得した後、画像の解析を容易にするために少し処理を行いますが、後処理では値が切り捨てられます。
関連するPHPは次のとおりです。
function organizeFilesArray(&$file_post) {
$file_array = array();
$file_count = count($file_post['name']);
$file_keys = array_keys($file_post);
for ($i=0; $i<$file_count; $i++) {
foreach ($file_keys as $key) {
$file_array[$i][$key] = $file_post[$key][$i];
echo "$file_array[$i][$key]";
echo " ... ";
echo "$file_post[$key][$i] ";
}
echo "$file_count ";
}
return $file_array;
}
if(isset($_POST)){
$destinationDirectory = '/Applications/MAMP/htdocs/image_upload/uploads/';
//check if _FILES array is empty or if the file was uploaded via POST
if(!isset($_FILES['ImageFile']) || !is_uploaded_file($_FILES['ImageFile']['tmp_name'])){
die('Something went wrong with Upload!');
}
//clean up the array so I can handle it simply
//$imageArray = organizeFilesArray($_FILES['ImageFile']);
$file_array = organizeFilesArray($_FILES['ImageFile']);
echo" array size pp: " . sizeof($file_array);
foreach($file_array as $file){
//random number to be added after image name
$randomNumber = rand(0, 9999999999);
//access these values by using their index position
//$imageName = str_replace(' ','-',strtolower($file['name']));
$imageName = $file['name']; //get file name
$imageSize = $file['size']; // Obtain original image size
$tempSrc = $file['tmp_name']; // Tmp name of image file stored in PHP tmp folder
$imageType = $file['type']; //Obtain file type, returns "image/png", image/jpeg, text/plain etc.
echo "This is the type before we try: " . $file['type'];
echo "This is the name before we try: " . $file['name'];
echo "This is the size before we try: " . $file['size'];
//make sure filetype is supported
switch(strtolower($imageType)){
case 'image/png':
$createdImage = imagecreatefrompng($file['tmp_name']);
break;
case 'image/gif':
$createdImage = imagecreatefromgif($file['tmp_name']);
break;
case 'image/jpeg':
case 'image/pjpeg':
$createdImage = imagecreatefromjpeg($file['tmp_name']);
break;
default:
die('Unsupported File!:'.$imageType); //output error and exit
}
何が起こっているのかを理解しようとして、そこにあるすべてのエコーステートメントについて申し訳ありません。何かをアップロードしようとすると、これが(Firebugから)取得されます。
だから..処理後、私の配列内のすべてが最初の文字に切り捨てられているように見えますか?どんな助けでも大歓迎です!