0

我正在尝试使用 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 文件?

4

3 回答 3

1

可能不会 - 您展示的内容没有显示任何明显的瓶颈。很可能只是客户端连接需要很长时间。

需要修复的是$audio. 见http://php.net/manual/en/security.database.sql-injection.php

于 2012-06-06T07:30:09.923 回答
1

文件越大,所需的时间就越长。你可以使用像uploadify这样的脚本来给你一个上传百分比,所以它看起来不像浏览器挂起,但是上传文件时有一些安全考虑,你的脚本有人可以上传任何东西,即使是PHP,也不要直接访问文件或允许文件被 php 解析..

您还应该使用准备好的查询,因为这些mysql_*函数处于弃用过程中。http://news.php.net/php.internals/53799

于 2012-06-06T07:39:30.490 回答
0

通常缓慢的上传速度是由于有限的 TCP 窗口(在任何给定时间可以在两个网络位置之间传输的数据包的最大数量)。此值通常由低级 OS 驱动程序确定,并且不受您的控制。

通过并行数据传输可以实现更快的上传速度;一个文件被分成几部分,然后并行传输。您需要确定同时上传两组数据是否会真正减少传输时间。

现代浏览器公开了一个 JavaScript 接口,以二进制流的形式访问本地文件;有些将允许您(有效地)将文件的切片读入内存并通过 AJAX 传输这些切片。这也称为分块。

在服务器端,您还需要进行更改以支持分块。在并行上传期间使用会话会导致锁定;这可能是也可能不是问题,具体取决于您的要求。

希望这能让您对“让您的上传速度更快”的方法有所了解:)

于 2012-06-06T08:31:48.283 回答