2014-01-19 3 views
1

Я хочу загрузить файл и проанализировать его, не сохраняя его навсегда. Как я могу получить содержимое загруженного файла в моем обработчике отправки? Единственное, что я мог найти, всегда сохранял файл.Загрузить файл без сохранения

+0

В вашем сценарии невозможно сохранить файл, а затем просто удалить его? – Sickest

+0

это, но, похоже, пустая трата времени ... это file_save_upload, куда идти? – Maarten

ответ

0

Ну, вы должны сохранить его в любом случае: когда файл загружается через PHP-форму, он всегда записывается на диск. К счастью для вас, элемент «managed_file» drupal обрабатывает все файлы как непостоянные -> cron избавится от них вовремя, если вы не добавите «file_usage_add». Это означает, что вам не нужно их удалять.

Короче говоря:

function my_form($form,&$form_state) { 
    $form["myfile"]= array(
     '#type' => "managed_file",  
     '#progress_indicator' => "bar", 
     '#upload_location' => "public://",   
     '#upload_validators' => array(
      'file_validate_extensions' => array('gif png jpg jpeg'),       
     ), 
    );  
} 

function my_form_submit($form,&$form_state) { 
    $file = file_load($form_state["values"]["myfile"]); 

    //Do what you want with it. 
    //Keep in mind that the file will be gone soon automatically. 
} 

Другим способом было бы read the file via Javascript и передать результаты в PHP с помощью POST. Тогда файл не будет «написан» нигде.

Смежные вопросы