2009-07-13 14 views
1

複数のファイルをアップロードできるPHPスクリプトを作成しようとしています。画像をアップロードできない

for($i=0;$i<count($_FILES['uploadimg']['name']);$i++){ 
    $name = $_FILES['uploadimg']['name'][$i]; 
    $type = $_FILES['uploadimg']['type'][$i]; 
    $filepath = $_FILES['uploadimg']['tmp_name'][$i]; 
    $size = getimagesize($filepath); 
    $img = file_get_contents($filepath); 

    //insert into database 
} 

問題は、変数が必要な方法で入力されていないことです。

私はJPEG、「image.jpg」をアップロードすると、私は変数は以下の値を持っていることを発見した:(echo sおよびvar_export秒で、データベースのコードを置き換えることによって)

$name = 'image.jpg'; // good 
$type = ''; // not good 
$filepath = ''; // not good 
$size = false; // not good 
$img = false; // not good 

私は私に注意してください実現する$size$imgは有効なファイルパスである$filepathに依存します。

何が間違っているのか、何が欠けているのか、いくつかの洞察を提供できますか?私はコードを1日使い続けてきましたが、解決策を考え出すことはできません。

更新:3枚の画像に

print_r($_FILES)リターン:私は、これはイメージが大きすぎる意味

Array (
    [uploadimg] => Array (
     [name] => Array (
      [0] => test1.jpg 
      [1] => test2.jpg 
      [2] => test3.jpg 
     ) 
     [type] => Array (
      [0] => image/jpeg 
      [1] => 
      [2] => image/jpeg 
     ) 
     [tmp_name] => Array (
      [0] => /tmp/phpkC6f2F 
      [1] => 
      [2] => /tmp/phpgFrPl8 
     ) 
     [error] => Array (
      [0] => 0 
      [1] => 1 
      [2] => 0 
     ) 
     [size] => Array (
      [0] => 238906 
      [1] => 0 
      [2] => 237308 
     ) 
    ) 
) 

を想定することはできますか?

答えて

2

This question/answerです。

- ファイルサイズの問題のようです。両方のファイルのサイズは約1.8Mbで、デフォルトではPHPのファイルアップロード制限は2Mbです。私はこれだけのWindowsの観点から、あなたの助言を与えることができますが、私はphp.iniのに増加upload_max_filesize、おそらくpost_max_size settingsで探していると思います。

編集2 - PHP.netにはlists the error codes for uploadingというセクションがあります。あなたは1を取得しています:

UPLOAD_ERR_INI_SIZE 

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

これは私の最初の編集で述べた内容と一致します。

+0

ありがとうございました。特に、ダンプをするというロスの提案と関連して、それはたくさん説明しています。私が今投稿した結果です。 –

1

これらのファイルはすべて同じタイプですか?いくつかのファイルをアップロードするときに変数のvar_dumpを教えてもらえますか?すべてのアップロードの変数は空ですか?

たとえば、このコード:

戻り値この出力:

Array (
    [upload] => Array (
     [name] => Array (
      [0] => IMG_0005.jpg 
      [1] => IMG_0249.jpg 
      [2] => IMG_0007.JPG 
     ) 
     (...snip...) 
     [size] => Array ( 
      [0] => 1776529 
      [1] => 1902522 
      [2] => 798008 
     ) 
    ) 
) 

は、ファイルごとに$_FILES['name']['error']をチェックすることを忘れないでください。

+0

私は結果を掲示しました、そして、私は問題がファイルサイズであることを示していると信じています。 –

関連する問題