2010-07-08 101 views
2

我試圖上傳一個使用本地主機的圖像立即上傳,但是,當我試圖在我的網站主機,它花了超過5分鐘的文件出現在「_uploads」文件夾。文件上傳到服務器需要時間來完成

有人遇到同樣的問題嗎? AV是否考慮了延遲掃描?

<?php 
$hasError = false;foreach($_FILES as $i=>$file){ 
    if ($file['error']){ 
     $hasError = true; 
    } 
} 
if (! $hasError){ 
    $filename = '_uploads/'.$_GET["key"].'_'.$file["name"]; 
    $myFilePath = '_uploads/'.$_GET["key"].'_'.$file["name"]; 
    $dta = file_get_contents($file['tmp_name']); 
    file_put_contents($myFilePath, $dta); 
    echo('success'); 
} else { 
    echo('Image was not successfully upload.'); 
} 
?> 
+0

你解決了嗎?我會嘗試和進一步協助你是否仍然有問題:) – Andrew 2010-07-12 09:35:32

回答

0

取決於文件的大小。

在本地主機上,文件沒有通過互聯網傳輸。

文件大小是多少?

您可能還需要檢查出move_uploaded_file而不是file_put_contents

http://php.net/manual/en/function.move-uploaded-file.php

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["pictures"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
     $name = $_FILES["pictures"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
+0

小於50kb的圖像,會嘗試你的方法。 – proyb2 2010-07-08 16:01:51

1

看一看這個教程:http://www.w3schools.com/PHP/php_file_upload.asp

它使用move_uploaded_file方法,下面我想是一種更有效的移動文件的方式,而不是file_get_contentsfile_put_contents

move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . $_FILES["file"]["name"]); 

如果您還沒有檢查我會請務必檢查上傳的文件是通過檢查存在MIME類型和擴展類型有效。

這裏是鏈接到PHP的參考:http://php.net/manual/en/function.move-uploaded-file.php

+0

會嘗試你的方法 但$ _FILES [「file」] < - 報價中的文件可以用我喜歡的方式命名?因爲我從ActionScript轉移到PHP – proyb2 2010-07-08 16:02:32

+0

應該能夠傳遞它的位置,但是它已經存儲了。你的代碼示例看起來不夠完整,不能進一步幫助,但我相信這會加快你的速度! :) – Andrew 2010-07-08 20:04:11