php – .exe文件从服务器下载时损坏
首先:我是一个低级的网页设计师,他知道只有足够的
PHP是危险的,而且只要服务器管理就足够了.除非你很清楚,否则我可能不会理解你!
设置:我已经建立了一个网站,客户端将文件上传到特定目录,这些文件通过php提供,供用户下载.这些文件通常是50MB以上的可执行文件.客户端不希望他们压缩,因为他们觉得他们的用户不够精明,无法解压缩.我正在使用下面的php强制下载对话框并隐藏文件所在的目录. 这是Linux服务器,如果这有所不同. 问题:用户尝试下载后,某个文件会损坏.它是一个可执行文件,但是当它被单击时,会打开一个空白的DOS窗口.下载之前的原始文件打开完美.还有其他几个类似的文件经过相同的下载程序,所有这些都可以正常工作. 我尝试过的事情:我尝试上传压缩文件,然后在服务器上解压缩,以确保它在上传过程中没有损坏,没有运气. 这可能是我的downloadFile函数中的标题的问题?我真的不确定如何解决这个问题…… 这是下载php,如果它是相关的($filenamereplace在别处定义): downloadFile("../DIRECTORY/files/$filenamereplace","$filenamereplace"); function downloadFile($file,$filename){ if(file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate,post-check=0,pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); @ flush(); readfile($file); exit; } } ETA Additonal信息: Additonal信息:我认为这一点非常重要! 3/17主要修正 – 并已解决 –
“我还将原始文件的二进制代码与不起作用的下载文件进行了比较,它们完全相同(因此php不会意外地在文件中插入任何内容).”
如果这是真的,那么问题必须在于如何在下载后启动exe.它应该不是您的PHP代码的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |