2011-10-04 98 views
1

我正在努力與uploadify目前。我遵循了文檔,但對於我的生活,我無法將文件上傳到文件夾。Uploadify。上傳工作,但不保存到文件夾

我在OSX上使用MAMP。上傳時,我可以看到上傳欄,在Chrome控制檯上沒有錯誤。 tmp文件夾是777

的意見/ upload.php的

<!DOCTYPE html> 
<html lang="en"> 
<head> 

<link href="<?php echo base_url() ?>assets/uploadify/uploadify.css" type="text/css" rel="stylesheet"> 

<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/jquery.uploadify.v2.1.4.min.js"></script> 
<script type="text/javascript" src="<?php echo base_url() ?>assets/uploadify/swfobject.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#file_upload').uploadify({ 
      'uploader' : '<?php echo base_url() ?>assets/uploadify/uploadify.swf', 
      'script' : '<?php echo base_url() ?>assets/uploadify/uploadify.php', 
      'cancelImg' : '<?php echo base_url() ?>assets/uploadify/cancel.png', 
      'auto'  : true 
     }); 
    }); 


</script> 
</head> 
<body> 

<input id="file_upload" name="file_upload" type="file"> 
</body> 
</html> 

upload.php的

<?php 
if (!empty($_FILES)) { 
$tempFile = $_FILES['Filedata']['tmp_name']; 
$targetPath = '/Applications/MAMP/htdocs/tmp'; 
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

    move_uploaded_file($tempFile,$targetFile); 
    echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile); 

} 
+1

您可能需要添加一個'/'到$ targetPath –

+0

像魅力一樣工作。謝謝Pekka。 – GV1

+0

沒問題。我會將它作爲答案添加,然後 –

回答

1

你可能需要一個/添加到$ TARGETPATH:

$targetPath = '/Applications/MAMP/htdocs/tmp/'; 

一般來說,調試這些東西的一種方法是在表單中創建一個正常的文件上傳。這樣,您可以在上傳腳本中執行測試輸出並查看它們。一旦所有的東西在服務器端運行,切換回在客戶端使用SWFUpload。

+0

工作。這總是最令人頭痛的簡單解決方案。 – GV1

+1

@ GV1注意:使用用戶提供的文件名將文件存儲在服務器上存在安全風險,並且可能會發生故障(例如,如果文件名包含文件系統不允許的字符)。使用自生名稱更安全(並將用戶提供的名稱存儲在數據庫中,如果以後需要) –

+0

感謝關注@Pekka。我實際上使用CodeIgniters文件上傳類來加密文件名和限制文件類型。我正在用上面的例子測試Uploadify。 – GV1