WebDev サイトでよく見られる質問は、ファイルのアップロードに関するものです。今回はPHPを使ってファイルをアップロードする方法を解説します。 アップロード フォームのデザイン
私たちの主な目標は、ローカル コンピューターからサーバーにファイルをアップロードすることです。これを行うには、ユーザーがファイルを選択して送信できるフォームを作成する必要があります。以下は例です。 & & lt; ヘッダ & gt;
& lt; & gt;
& lt; テーブル & gt;
& lt; フォーム entype ="multipart/form-data"
METHOD="POST"> TD>アップロード ファイルを選択
/HTML>
テーブル「part.」のENCTYPE="multipart/form-data"に注目してください。これは間違ってはいけません。間違っていると、ファイルをアップロードしていることがサーバーに認識されません。
アップロード プログラムを設計する
フロントエンド部分が完了したので、バックエンドがどのようにファイルを受信し、指定したディレクトリ
に保存するかを慎重に検討してみましょう。 PHP を使い始めましょう。これは submit.php3 のプログラムです:
If($MyFile != "none") {
copy($MyFile,"/home/berber/$MyFile_name");
}
else {
echo"ファイルをアップロードしていませんか?;
}
?>
信じられないかもしれませんが、これがプロセス全体です。プログラムで行うことは次のとおりです:
1. 次のことを確認します。 If($MyFile != "none"); を介してファイルがサーバーにアップロードされました。
3. 送信ボタンを押すと、ファイルが削除されます。ファイルはサーバーの一時ディレクトリにアップロードされます。この場合、ファイル フィールドの名前の値を使用してアクセスする必要があります。実際のファイル名は、ファイル フィールドの名前の値です。アクセスするには、「_name」を追加します。ここでは、copy() 関数を使用して、一時ファイル $MyFile を指定したディレクトリにコピーします。 MyFile_name. ファイルを削除することを忘れないでください。そうしないと、
ファイル名の設定
を変更しようとすることがあります。ファイル フィールドの VALUE 属性の値を理解している人は多くありません
不可能です。W3C はそれが可能であると言っていますが、実際には、IE と Netscape では VAUE 属性の値を設定することは許可されていません。ユーザーの利便性を高めるために初期値を設定できないのはなぜですか? そうすることで、Web サイトにログインすると、セキュリティ上の脆弱性がもたらされたことがわかり、その値を変更できると考えてください。 /etc/passwd ファイルをアップロードすると、最初にファイル フィールドの値を設定してからシミュレーションできるようになります。 JavaScript プログラムによる送信アクション... うわー、あなたのマシン上のあらゆる
ファイルを処理できるため、ブラウザは
タグのファイル フィールドの VALUE フィールドを無視します。ファイル サイズを制限する
もう 1 つの便利な機能は、 タグを追加するだけです:
ユーザーは 100KB を超えるファイルをアップロードすることはできません。
ファイル サイズを表示するには、ファイル フィールド名の属性値に「_size」変数を追加することでアクセスできます。この例では、
は $MyFile_size を使用しています。したがって、アップロードされたファイルのサイズをユーザーに伝えたい場合は、次のようにすることができます:
echo "$MyFile_name をアップロードしました";
echo "ファイルのサイズは $MyFile_size です";権限
明らかに、ターゲットディレクトリに対する書き込み権限が必要です。ユーザーが匿名でファイルをアップロードする場合、ユーザー名は
「bobody」である必要があります。このユーザーはターゲット ディレクトリへの書き込み権限を持っている必要があります。そうでないと、次のようなメッセージが表示される可能性があります:
警告: '/home/berber/berber.txt' を作成できません:
権限が拒否されました
in /home/berber/submit. php3の5行目