2012-05-16 29 views
0

我需要最簡單的解決方案,從PHP上傳Ext應用程序的文件。我是一個完全的PHP新手,所以我沒有得到我收到的錯誤,只能猜測是什麼造成了他們。在前端方面我有一個簡單的表格:簡單的文件上傳與PHP和ExtJs不工作

Ext.create('Ext.form.Panel', { 
    width: 300, 
    renderTo: Ext.getBody(), 
    frame: false, 
    title: 'File Upload Form', 
    bodyPadding: '10 10 0', 

    defaults: { 
     anchor: '100%', 
     allowBlank: false, 
     msgTarget: 'side', 
     labelWidth: 50 
    }, 

    items: [{ 
     xtype: 'filefield', 
     id: 'form-file', 
     emptyText: 'Select mpp file', 
     fieldLabel: 'File', 
     name: 'mpp-file', 
     buttonText: '', 
     buttonConfig: { 
      iconCls: 'upload-icon' 
     } 
    }], 
    buttons: [{ 
     text: 'Upload', 
     handler: function(){ 
      var form = this.up('form').getForm(); 
      if(form.isValid()){ 
       form.submit({ 
        url: 'msp-load.php', 
        waitMsg: 'Loading data...', 
        success: function(fp, o) { 
         msg('Success', 'Data from .mpp file loaded '); 
        } 
       }); 
      } 
     } 
    }] 
}) 

的MSP-upload.php的如下所示:

uncaught exception: Ext.JSON.decode(): You're trying to decode an invalid JSON String: <br> <b>Warning</b>: move_uploaded_file(tmp/MSP1.mpp) [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: failed to open stream: No such file or directory in <b>/Library/WebServer/Documents/examples/MSProject_import/msp-load.php</b> on line <b>10</b><br> <br> <b>Warning</b>: move_uploaded_file() [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: Unable to move '/private/var/tmp/phpJVDktB' to 'tmp/MSP1.mpp' in <b>/Library/WebServer/Documents/examples/MSProject_import/msp-load.php</b> on line <b>10</b><br> {success: false}

<? 
if(isset($_FILES)){ 
    $file_tmp = $_FILES['mpp-file']['tmp_name']; 
    $file_name = $_FILES['mpp-file']['name']; 
    $file_size = $_FILES['mpp-file']['size']; 

    //echo ($file_tmp.", ".$file_name.", ".$file_size); 

    if(is_uploaded_file($file_tmp)) { 
     if(move_uploaded_file($file_tmp, "tmp/$file_name")){ 
      echo '{success: true}'; 
     } else { 
      echo '{success: false}'; 
     }  
    } else{ 
     echo '{success: false}'; 
    } 
} 
?> 

點擊 '上傳' 我拿到後

這是什麼:'沒有這樣的文件...'錯誤來自?它無法找到上傳的文件或其他東西?我的服務器用戶具有管理員權限,所以它不是關於權限。

我在PHP 5.3.6中使用內置的OSX 10.7服務器。在error.log中沒有錯誤。

+0

文件夾「tmp」是否存在? – Leri

+0

是的,它確實是一個unix :) –

回答

2

如上所述,存在兩個可能的問題。

  1. 路徑錯誤(這你是給上傳基本路徑是無效)
  2. 或者錯誤的權限中給出。 (CHMOD 777)
+0

我真的該死777了,謝謝。 –

+0

您的歡迎... :) – NarayaN

1

你有錯誤信息,從您的MSP-upload.php的:無法「/私營/ var/tmp中/ phpJVDktB」移動到「TMP/MSP1.mpp」 你必須設置與寫訪問的全部目標路徑

if(move_uploaded_file($file_tmp, dirname(__FILE__)."/tmp/$file_name")){ 
     echo '{success: true}'; 
    } else { 
     echo '{success: false}'; 
    }