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

おそらくそうではありません-あなたが示すものは明らかなボトルネックを示していません。非常に時間がかかるのは、おそらくクライアント接続だけです。

ただし、修正する必要があるのは、のSQLインジェクションです$audiohttp://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 ウィンドウ (2 つのネットワーク ロケーション間で任意の時点で転送できるパケットの最大数) が制限されているためです。この値は通常、低レベルの OS ドライバーによって決定され、制御できません。

並列データ転送により、アップロード速度が向上する場合があります。ファイルはいくつかの部分に分割され、それらは並行して転送されます。2 セットのデータを同時にアップロードすると、実際に転送時間が短縮されるかどうかを判断する必要があります。

最近のブラウザは、ローカル ファイルにバイナリ ストリームとしてアクセスするための JavaScript インターフェイスを公開しています。ファイルのスライスを (効率的に) メモリに読み込み、AJAX 経由で転送できるものもあります。これは、チャンキングとも呼ばれます。

サーバー側では、チャンクもサポートするように変更を加える必要があります。並列アップロード中にセッションを使用すると、ロックが発生します。要件によっては、これが問題になる場合とそうでない場合があります。

これにより、「アップロードを高速化する」ために何を調べることができるかについてのアイデアが得られることを願っています:)

于 2012-06-06T08:31:48.283 に答える