PHP でファイルや写真をアップロードする場合、アップロードされるファイルの種類を制限する必要があります。サフィックス名のみを制限すると、それを回避するのは簡単です。以下に、鉱山の比較表に対応するいくつかのサフィックス名を示します。 . 皆様のお役に立てれば幸いです。
PHP スクリプトを使用してファイルをアップロードする場合は、ファイル形式を PHP で認識されるファイル形式に加工する必要があります (たとえば、.jpg のファイル形式は image/jpeg)。この形式の判断は、まずブラウザによって行われ、フォームの送信を通じてそれが特定の種類のファイルであると判断され、それが処理のために PHP に送信されます。
ブラウザーごとにファイルタイプの定義が異なる場合があるため、ブラウザーごとに判断する必要がある場合があります。実際、さまざまなブラウザの種類を判定に追加できます。
以下は、IE と Firefox のファイルタイプの比較表です:
いえ |
Firefox |
ID |
サフィックス |
phpで認識されるファイルタイプ |
0 |
gif |
画像/GIF |
1 |
jpg |
画像/jpeg |
2 |
png |
画像/png |
3 |
bmp |
画像/bmp |
4 |
PSD |
アプリケーション/オクテットストリーム |
5 |
イコ |
画像/xアイコン |
6 |
rar |
アプリケーション/オクテットストリーム |
7 |
ジップ |
アプリケーション/zip |
8 |
7z |
アプリケーション/オクテットストリーム |
9 |
実行 |
アプリケーション/オクテットストリーム |
10 |
ナビ |
ビデオ/avi |
11 |
rmvb |
application/vnd.rn-realmedia-vbr |
12 |
3GP |
アプリケーション/オクテットストリーム |
13 |
flv |
アプリケーション/オクテットストリーム |
14 |
mp3 |
オーディオ/mpeg |
15 |
wav |
オーディオ/wav |
16 |
krc |
アプリケーション/オクテットストリーム |
17 |
lrc |
アプリケーション/オクテットストリーム |
18 |
txt |
テキスト/プレーン |
19 |
ドクター |
アプリケーション/msword |
20 |
XLS |
アプリケーション/vnd.ms-excel |
21 |
ppt |
アプリケーション/vnd.ms-powerpoint |
22 |
pdf |
申請書/pdf |
23 |
ちむ |
アプリケーション/オクテットストリーム |
24 |
mdb |
アプリケーション/msaccess |
25 |
SQL |
アプリケーション/オクテットストリーム |
26 |
コン |
アプリケーション/オクテットストリーム |
27 |
ログ |
テキスト/プレーン |
28 |
だ |
アプリケーション/オクテットストリーム |
29 |
イニ |
アプリケーション/オクテットストリーム |
30 |
php |
アプリケーション/オクテットストリーム |
31 |
html |
テキスト/html |
32 |
htm |
テキスト/html |
33 |
ttf |
アプリケーション/オクテットストリーム |
34 |
フォン |
アプリケーション/オクテットストリーム |
35 |
js |
アプリケーション/x-javascript |
36 |
xml |
テキスト/xml |
37 |
dll |
アプリケーション/オクテットストリーム |
38 |
dll |
アプリケーション/オクテットストリーム |
|
ID |
サフィックス |
phpで認識されるファイルタイプ |
0 |
gif |
画像/GIF |
1 |
jpg |
画像/pjpeg |
2 |
png |
画像/x-png |
3 |
bmp |
画像/bmp |
4 |
PSD |
アプリケーション/オクテットストリーム |
5 |
イコ |
画像/xアイコン |
6 |
rar |
アプリケーション/オクテットストリーム |
7 |
ジップ |
application/x-zip-compressed |
8 |
7z |
アプリケーション/オクテットストリーム |
9 |
実行 |
アプリケーション/オクテットストリーム |
10 |
ナビ |
ビデオ/avi |
11 |
rmvb |
application/vnd.rn-realmedia-vbr |
12 |
3GP |
アプリケーション/オクテットストリーム |
13 |
flv |
アプリケーション/オクテットストリーム |
14 |
mp3 |
オーディオ/mpeg |
15 |
wav |
オーディオ/wav |
16 |
krc |
アプリケーション/オクテットストリーム |
17 |
lrc |
アプリケーション/オクテットストリーム |
18 |
txt |
テキスト/プレーン |
19 |
ドクター |
アプリケーション/msword |
20 |
XLS |
アプリケーション/vnd.ms-excel |
21 |
ppt |
アプリケーション/vnd.ms-powerpoint |
22 |
pdf |
申請書/pdf |
23 |
ちむ |
アプリケーション/オクテットストリーム |
24 |
mdb |
アプリケーション/msaccess |
25 |
SQL |
テキスト/プレーン |
26 |
コン |
アプリケーション/オクテットストリーム |
27 |
ログ |
テキスト/プレーン |
28 |
だ |
テキスト/プレーン |
29 |
イニ |
アプリケーション/オクテットストリーム |
30 |
php |
アプリケーション/オクテットストリーム |
31 |
html |
テキスト/html |
32 |
htm |
テキスト/html |
33 |
ttf |
アプリケーション/オクテットストリーム |
34 |
フォン |
アプリケーション/オクテットストリーム |
35 |
js |
テキスト/html |
36 |
xml |
テキスト/xml |
37 |
dll |
アプリケーション/オクテットストリーム |
38 |
クラス |
アプリケーション/Java |
|
次に例を見てください
代码如下 |
复制幣 |
$temppath=$upfile['tmp_name'];
$fileinfo=pathinfo($upfile['name']);
$extension=$upfile['type'];
//エコー $extension;
//終了;
スイッチ( $extension )
{
ケース「アプリケーション/msword」:
$extension ='doc';
休憩;
ケース 'application/vnd.ms-excel':
$extension ='xls';
休憩;
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
$extension ='docx';
休憩;
ケース 'application/vnd.ms-powerpoint':
$extension ='ppt';
休憩;
ケース「アプリケーション/pdf」:
$extension ='pdf';
休憩;
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
$extension ='xlsx';
休憩;
デフォルト:
die('只允许上传doc,docx,xls,pdf,ppt文件 重新上传');
}
|
上の例では、doc、docx、xls、pdf、ppt のみを上方に転送できるように制限されており、php や asp ファイルなどの利用を意図した場合に上方に転送するファイルが違法であることが示されます。
http://www.bkjia.com/PHPjc/632741.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632741.html技術記事 php でファイルや写真をアップロードする場合、アップロードするファイルの種類を制限する必要があります。サフィックス名のみを制限すると、それを簡単に回避できます。