2014-01-19 4 views
1

파일을 업로드하고 영구히 저장하지 않고 파싱하고 싶습니다. 제출 처리기에서 업로드 된 파일의 내용을 어떻게 얻을 수 있습니까? 내가 찾을 수있는 유일한 것들은 항상 그것이 보이는 파일을 저장했습니다.저장하지 않고 파일 업로드

+0

시나리오에서 파일을 저장 한 다음 삭제할 수 없습니다. – Sickest

+0

그렇지만 시간 낭비 인 것 같습니다. file_save_upload가 그 길로 가고 있습니까? – Maarten

답변

0

음, 어쨌든 저장해야합니다. 파일이 PHP 양식을 통해 업로드되면 항상 디스크에 기록됩니다. 운좋게도 drupal의 "managed_file"-form 요소는 모든 파일을 비 영구적으로 처리합니다. - 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로하고 POST를 통해 PHP로 결과를 전달합니다. 그렇다면 파일은 어디에서나 "기록"되지 않습니다.

관련 문제