我正在尝试使用php代码将mp3文件上传到服务器,如图所示。
$audio=basename($_FILES['file']['name']);
$audio=str_replace(' ','|',$audio);
$tmppath1="audios/".$audio;
move_uploaded_file($_FILES['file']['tmp_name'],$tmppath1);
$query="INSERT INTO `appinstaller`.`tbl_audio` (`audioname`) VALUES ('$audio')";
$res=mysql_query($query);
在此文件中成功上传但上传到服务器需要更多时间。
有没有更快的上传MP3文件的方法?
答案 0 :(得分:1)
可能不是 - 您展示的内容并未显示任何明显的瓶颈。它可能只是客户端连接花了这么长时间。
您需要修复的内容是$audio
中的SQL注入。见http://php.net/manual/en/security.database.sql-injection.php
答案 1 :(得分:1)
文件越大,所需的时间越长。您可以使用像uploadify这样的脚本来提供上传百分比,因此它看起来不像浏览器挂起,在上传文件时有一些安全注意事项,您的脚本有人可以上传任何内容甚至PHP,也不要直接访问该文件或允许文件由php解析..
您还应该使用准备好的查询,因为mysql_*
函数在弃用过程中。 http://news.php.net/php.internals/53799
答案 2 :(得分:0)
通常较慢的上传速度是由于有限的TCP窗口(在任何给定时间,两个网络位置之间可以传输的最大数据包数)。此值通常由低级操作系统驱动程序确定,并且不在您的控制之下。
通过并行数据传输可以实现更快的上传速度;一个文件被分成几个部分,并且这些文件是并行传输的。您需要确定是否同时上传两组数据实际上会减少传输时间。
现代浏览器公开JavaScript接口以二进制流的形式访问本地文件;有些将允许您(有效地)将文件的片段读入内存并通过AJAX传输。这也称为分块。
在服务器端,您还需要进行更改以支持分块。在并行上传期间使用会话将导致锁定;根据您的要求,这可能是也可能不是问题。
希望这可以让您了解如何“让您的上传速度更快”:)