2017-01-20 7 views
-2

私はPHPにかなり新しいです、現在写真のアップロード機能に取り組んでいます、あなたは画像をアップロードすることができますが、画像は今アップロードする必要はありません。絵 は、ここでのvar $ _FILESPHPの画像のアップロード

array(1) { ["photo"]=> array(5) { ["name"]=> array(1) { [0]=> string(0) "" } ["type"]=> array(1) { [0]=> string(0) "" } ["tmp_name"]=> array(1) { [0]=> string(0) "" } ["error"]=> array(1) { [0]=> int(4) } ["size"]=> array(1) { [0]=> int(0) } } } 

errosのダンプ

Notice: Undefined offset: 1 in C:\xampp\htdocs\project\admin\products.php on line 99 

Notice: Undefined offset: 1 in C:\xampp\htdocs\project\admin\products.php on line 102 
を取得イム私のコードここ

$photoCount = count($_FILES['photo']['name']); 
if($photoCount > 0) { 
    for($i = 0;$i<$photoCount;$i++) { 
     $name = $_FILES['photo']['name'][$i]; 
     $nameArray = explode('.', $name); 
     $fileName = $nameArray[0]; 
     $fileExt = $nameArray[1]; 
     $mime = explode('/', $_FILES['photo']['type'][$i]); 
     $mimeType = $mime[0]; 
     $mimeExt = $mime[1]; 
     $tmpLoc[] = $_FILES['photo']['tmp_name'][$i]; 
     $fileSize = $_FILES['photo']['size'][$i]; 
     $uploadName = $name; 
     $uploadPath[] = BASEURL.'/admin/productimages/'.$uploadName; 
     if ($i != 0) { 
      $dbpath .= ','; 
     } 
     $dbpath .= '/project/admin/productimages/'.$uploadName; 

     if($mimeType != 'image') { 
      $errors[] .= 'The file must be an image.'; 
     } 

     if(!in_array($fileExt, $allowed)) { 
      $errors[] .= 'The file extension must be a png, jpg, jpeg, or gif.'; 
     } 

     if($fileSize > 15000000) { 
      $errors[] .= 'The file size must be under 15 megabytes.'; 
     } 
     if ($fileExt != $mimeExt && ($mimeExt == 'jpeg' && $fileExt != 'jpg')) { 
      $errors[] = 'File extension does not match the file'; 
     } 
    } 
} 

されています

これは、oohのライン99と102

$fileExt = $nameArray[1]; 

$mimeExt = $mime[1]; 
+0

画像なしで送信しようとすると、どのようなエラーが発生しますか?いくつかあり、何が間違っているのかを示すものでなければなりません。 – jonmrich

+0

@jonmrich私は質問を更新し、エラーを含んでいます。私は見てくださいよろしくお願いします – Comunit3

答えて

0

名前を処理する前に、エラーをチェックしてください。

if ($_FILES['photo']['error'][$i] > 0) { 
    echo 'Didn\'t work'; 
} else { 
    // Process the file 
} 

この場合、エラーは「4」(UPLOAD_ERR_NO_FILE)に設定されます。ある範囲のエラーがあります。エラーがある場合、そのファイルは存在せず、処理できません。最初に確認してください。

+0

あなたは魅力のように働いていただきありがとうございます、あなたはスーパースターです – Comunit3

-1

です!

問題は配列のインデックスエラーです。

$nameは空の文字列です(結果としてvar_dumpになります)。explode('.', $name)はこの配列のような配列を返します。配列の長さは1です。$nameArray[1]の長さが足りない場合は、エラーが発生します。

2番目のエラーは最初のエラーと同じです。

$nameを最初に空白にしてください。

関連する問題