ホームページ  >  記事  >  バックエンド開発  >  PHP アップロード関連の問題

PHP アップロード関連の問題

WBOY
WBOYオリジナル
2016-06-13 13:30:56880ブラウズ

PHP アップロードの問題
IE でケース「application/octet-stream」を追加しないと、この文は .zip ファイルを正常にアップロードできますが、Google Chrome ではアップロードできません。この文を追加すると、IE は他の種類のファイルをアップロードします。 .zip に変換されましたが、Google ではエラーは報告されませんでした。何が問題なのでしょうか? ?
コードは次のとおりです:
if(!empty($_POST['sub'])){
$ym=$_FILES['up']['name' ] ;
$size=$_FILES['up']['size'];
$tmpname=$_FILES['up']['tmp_name'];
$error=$_FILES[' up ']['error'];
echo $lx=$_FILES['up']['type'];
if($size<=2000000){
switch ($lx){
case "image/jpg":
case "image/pjpeg":
case "image/jpeg":
$lujing=".jpg";
Break;
case " image/gif":
$lujing=".gif";
ブレーク;
case "image/x-png":
case "image/png":
$lujing= " .png";
ブレーク;
case "application/x-zip-compressed":
case "application/octet-stream":
$lujing=".zip";
ブレーク ;
case "アプリケーション/pdf":
$lujing=".pdf";
ブレーク;
デフォルト:$lujing=false;
}
if($lujing= = ".jpg" || $lujing==".gif" || $lujing==".png"){
if(!file_exists('img')){
mkdir("img") ;
}
move_uploaded_file($tmpname, "img/".time().$lujing);

switch($error){
case 0:
Echo "アップロード成功しました "; Break;
}
}elseif($lujing==".zip"){
if(!file_exists('zip')){
mkdir("zip");
}
move_uploaded_file($tmpname, "zip/".time().$lujing);
switch($error){
case 0:
Echo "アップロード成功";
}
}elseif($lujing==".pdf"){
if(!file_exists('pdf')){
mkdir("pdf");
}
move_uploaded_file($tmpname, "pdf/".time().$lujing);
switch($error){
case 0:
Echo "アップロード成功";
}
}
else{
echo "ファイルの種類がありません! ";
}
}else{
echo "アップロードしたファイルが大きすぎます。 ";
}
}
?>






------解決策----------------------
$_FILES['file']['type'] の値はブラウザによって生成された
は、ブラウザが指定したものであることを意味します

これに基づいてアップロードされたファイルのタイプを判断する必要がある場合は、さまざまなブラウザがそれをどのように識別するかを理解する必要があります。
------解決策-----
これはブラウザが認識できないタイプです。ブラウザの機能に依存します。
Content-Type: application/octet-stream
------解決策---------
まさか、ブラウザを変更することはできません
ブラウザを改変する能力があっても、ユーザーが改変したブラウザを使用することは不可能です

名前の項目はありませんか?サフィックス

に従ってファイルの種類を特定し、ファイルの最初の数バイトをチェックしてファイルの種類

を特定します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。