2

Linuxでこの行を読んでいます。ただし、これをブラウザにエコーすると、何も表示されません。エコーラインの使い方に問題はありますか?

// relevant code snippets
$mypic = $_FILES['upload']['name'];
$temp = $_FILES['upload']['tmp_name'];
$type = $_FILES['upload']['type'];

/*$finfo=finfo_open(FILEINFO_MIME_TYPE);
$type=finfo_file($finfo,$temp);
finfo_close($finfo);*/

echo "<pre>"; print_r($_FILES);
echo $mypic."<br />";
echo $type."<br />";
echo $_FILES['upload']['error']."<br />";
echo var_dump($type)."<br />";

別のファイルでのファイル入力の処理方法に問題があると思われる場合は、そのphpファイルをこのリンクに含めました。

<form ENCTYPE="multipart/form-data" method="post" action="insert.php">

Name: <input type="text" name="name" maxlength="15" /><br />
Email: <input type="text" name="email" maxlength="30" /><br />
Password: <input type="password" name="password" maxlength="15" /><br />
Confirm Password: <input type="password" name="cpassword" maxlength="15" /><br />

<input type="hidden" name="MAX_FILE_SIZE" value="10000">
Choose your picture: <input type="file" name="upload"><p>
<input type="submit" name="submit" value="Register" /><br />

<p>
<center><h3><?php include("links.php"); ?></h3></center>

</form>

これが私が見ているプリントアウトです:

配列([アップロード] =>配列([名前] =>protest.jpg[タイプ]=>[tmp_name]=>[エラー]=>2[サイズ]=>0)

)protest.jpg

2文字列(0) ""

------------------2012年5月5日午後9時40分現在の更新--------------------- --------

アイコンを試してみましたが、権限の設定以外に問題はありませんでした(当面は自分で解決できると思います)。しかし、私はまだファイルサイズの設定に固執しています。Peter Stuartの指示に従い、次の印刷物を入手しました。

ここに画像の説明を入力してください

どうやら、これら2つの設定のファイルサイズ制限は、私が持っていた元の画像(200 kb未満)を処理するのに十分すぎるほどです。この場合、これ以上何ができるかわかりません。

4

4 に答える 4

4

ファイルサイズが0でエラーが2であるのと同じ理由で、ファイルタイプは空です。

説明されたエラーメッセージから:

UPLOAD_ERR_FORM_SIZE値:2; アップロードされたファイルが、HTMLフォームで指定されたMAX_FILE_SIZEディレクティブを超えています。

最大サイズ10000をバイト単位でに設定しているので、約10Kbになります。最新のデジタルカム(4mgpx以上)で撮影した写真の場合、おそらくそのサイズの少なくとも10倍である必要があります。人々が提出している画像サイズの大まかな平均が得られるまで、今のところ最大サイズを省略してください。PHPには独自の最大アップロードサイズがあり、行が長すぎないようになっています。

将来このような問題を回避するために(ファイルのアップロードが成功したかどうかわからない)、おそらくコードを次のようなものでラップする必要があります。

$upload_error[0] = "AOK";
$upload_error[1] = "Server says: File too big!";
$upload_error[2] = "Browser says: File too big!";
$upload_error[3] = "File upload didn't finish.";
$upload_error[4] = "Ummm.... You forgot the file.";
$upload_error[6] = "Oops.  Webmaster needs to fix something.";
$upload_error[7] = "Server says: I'm stuffed. Email webmaster.";
$upload_error[8] = "Server says: Not gonna do it.  Webmaster needs to fix something.";


if($_FILES['upload']['error'] == 0) {
   //do your thing and move it to the database.
} else {
    $error_num = $_FILES['upload']['error'];
    echo $upload_error[$error_num];
}
于 2012-05-05T22:08:13.133 に答える
1

PHPのiniファイルでPHPのアップロードサイズの制限を確認します。それは不利な問題を引き起こす可能性があります:)

php.iniファイルを作成またはアクセスして、設定が次のようになっていることを確認します。

upload_max_filesize = 5M

post_max_size = 5M
于 2012-05-05T22:12:28.420 に答える
0

設定の順番も重要で、次のようになります。

upload_max_filesize = 5M
post_max_size = 5M

post_max_sizeそして、前に配置する と常に最大サイズエラーが発生しましたupload_max_filesize

于 2018-09-26T17:25:40.053 に答える
0

この問題は7年ありますが、理解するための明確な手順を見つけることなく、私はそれをやめました。これは私がそれを制御した方法です:

症状は、小さい画像(2MB未満)をアップロードできたが、2MB以下であるということでした。エラーを完全に特定することが重要です。この場合、 "UPLOAD_ERR_FORM_SIZE:" DEBUGの症状は、$ _ FILES ["image"] ["type"] = ""、(ばかげている)であり、それが.JPG画像であることは確かでした。

解決策:XAMPPを使用して、停止します。php.iniを構成し、「upload_max_filesize = 2M」に移動します。これは、アップロードしようとするファイルの制限が2メガバイトであることを意味するため、(たとえば)3Mに変更します。その後、XAMPPを再開し、2.5MBの画像をアップロードして成功しました。

申し訳ありませんが、私のステータスでは、このコメントに構成の画像を表示できません。

于 2019-11-13T19:28:17.783 に答える