PHP上传问题
在IE里不加case "application/octet-stream":这句能正常上传.zip文件,但是在谷歌浏览器里不行,然后加了这句话后,IE上传其他类型的文件时都会弄成.zip的,也不报错,谷歌倒是正常了,请问是哪里有问题呢??
一下是代码:
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 switch ($lx){
case "image/jpg":
case "image/pjpeg":
case "image/jpeg":
$lujing=".jpg";
break;
case "image/gif":
$lujing=".gif";
break;
case "image/x-png":
case "image/png":
$lujing=".png";
break;
case "application/x-zip-compressed":
case "application/octet-stream":
$lujing=".zip";
break;
case "application/pdf":
$lujing=".pdf";
break;
default:$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 "上传成功"; break;
}
}elseif($lujing==".pdf"){
if(!file_exists('pdf')){
mkdir("pdf");
}
move_uploaded_file($tmpname, "pdf/".time().$lujing);
switch($error){
case 0:
Echo "上传成功"; break;
}
}
else{
echo "文件超出类型!";
}
}else{
echo "你传的文件太大啦!";
}
}
?>
------解决方案--------------------
$_FILES['file']['type'] 中的值是浏览器产生的
也就是说浏览器说他是什么就是什么
如果你需要根据这个来判定上传文件的类型,就需要了解各种浏览器都可能识别成什么
------解决方案--------------------
浏览器识别不了的都是这个类型,这个是看浏览器能力的。
Content-Type: application/octet-stream
------解决方案--------------------
不可能,你没办法去修改浏览器
即使你有能力修改浏览器,也不可能让用户去使用你修改后的浏览器
不是还有个 name 项吗?根据后缀判别一下
再就是查看文件的前几个字节,来判定文件类型

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Dreamweaver CS6
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器