【问题标题】:only 347 bytes of Video Uploaded through CMS in PHP/MYSQL for clients仅 347 字节的视频通过 PHP/MYSQL 中的 CMS 为客户端上传
【发布时间】:2011-01-26 18:27:15
【问题描述】:

我在 PHP/MYSQL 中创建了一个基本的 CMS,以允许摄像师管理他们的视频组合。它托管在共享服务器上。在执行以下上传脚本之前,查询会将视频元数据插入数据库。

我的上传脚本在我尝试过(在多台机器上、在我家和在大学)时都能正常工作,但是当客户尝试自己上传视频时,CMS 只上传了 347 个字节,然后表现得好像上传完成。

这是我的代码问题还是客户端的问题?有什么我可以做的吗(我无权访问原始 PHP/Apache 日志...)谢谢!

这是 linux "strings" 命令对 347 字节二进制文件的输出:

[moov
Srmra
\rmda
Drdrf
url 
/Crispy%20Revised%20SD%20h264%20web-desktop.m4v
rmdr
zrmda
Hrdrf
url 
3Crispy%20Revised%20SD%20h264%20web-iPhone-cell.3gp
rmdr
rmvc
mobi
urmda
Crdrf
url 
.Crispy%20Revised%20SD%20h264%20web-iPhone.m4v
rmdr
rmvc
mobi

这大约占 347 字节的 245 个字节。

另外,这里是基本上传脚本的核心组件(我省略了一些清理活动):

if ($file["error"] > 0)
 {
  echo "<p>Return Code: " . $file["error"] . "</p>";
 }
else
 {
  if (file_exists($Dir.$file["propername"]))
   {
    echo "<p>".$file["propername"] . " already exists. ";
   }
  else
   {
    move_uploaded_file($file["tmp_name"],
    $Dir.$file["propername"]);
    echo "<p>Stored in: " . $Dir.$file["propername"];
   }
 }

【问题讨论】:

  • 您是否确认它是视频文件的前几个字节?也许他只是上传了一个.rm 文件?您是否有任何代码来验证文件格式或检查 $_FILES 中的上传错误情况?
  • 文件扩展名的客户端验证是我一直在做的。在启动上述功能之前,我也会执行 if ($file["type"] == "video/quicktime") 。所以我猜这个文件被识别为一个快速移动,即使是 347 字节。我不检查上传错误,所以这很简单,我应该尝试...谢谢。
  • 是的,查看 347 字节文件并发布其中包含的内容
  • $file[type] 中的媒体信息不可靠。它告诉您浏览器假定(或伪造)内容应该是什么。您可能还想通过mime_content_type() 进行验证。
  • 请查看我在主帖中的编辑,了解 347 字节文件的字符串内容。

标签: php apache video file-upload shared-hosting


【解决方案1】:

我认为您对 php.ini 上传相关的指令有疑问。 您应该查看http://www.radinks.com/upload/config.php此站点以获取各种解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-24
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2020-09-10
    • 2011-06-23
    • 2012-03-08
    相关资源
    最近更新 更多