2012-06-13 38 views
3

我一直在關注從Drupal的文檔形式例如10: http://api.drupal.org/api/examples/form_example!form_example.module/group/form_example/7Drupal 7種的形式API:文件上傳

這裏去我的表單的定義:

function portal_upload_form($form, $form_state) { 

    $form['file'] = array(
     '#type' => 'file', 
     '#title' => t('Choose a file'), 
    ); 

    $form['document_submit_button'] = array(

     '#type' => 'submit', 
     '#value' => t('upload'), 
    ); 

    return $form; 
} 

而且form_submit鉤:

function portal_upload_form_submit($form, &$form_state) { 

    $file = $form_state['values']['file']; 
     // ... 

儘管設置了具有777權限的輸入文件,$ file仍爲'空'。我錯過了一些東西,找不到我自己的東西...

謝謝! J.

+0

你是什麼意思「設置一個具有777權限的輸入文件」。這些權限在哪裏設置?如果他們在您的本地電腦,這是無關緊要的,因爲服務器不直接從您的電腦讀取。 –

+0

嗨,我用於測試的文件在本地文件系統上的權限確實是777。鑑於瀏覽器需要訪問該文件(只讀),至少有閱讀權限感到有用:) – Jem

回答

4

不回答,爲什麼形式不以文件/ URL提供的問題/ ...但它解決了整個上傳問題:

function portal_upload_form_submit($form, &$form_state) { 

    $file = $form_state['values']['file']; 

    $validators = array(); 
    $file = file_save_upload('file', $validators, 'public://'); 
+0

http://blog.ryantan.net/2011/04/drupal-7-handling-file-uploads/是的,它確實有幫助 – Hitesh

1

這裏有一些其他事情要考慮這裏:

  1. file_save_upload()只將驗證的內容類型的默認列表:JPG GIF JPEG,PNG TXT文檔XLS PDF PPT PPS ODT ODS ODP

  2. 一定要命名您的第一項關聯數組格式,即'#name' => 'files[img_1]',

file_save_upload() documentation,看到的信息,我的第二點的第一條評論。