2014-01-19 64 views
1

我想上传文件并解析它,而不是永久保存它。 如何在我的提交处理程序中获取上传文件的内容?我能找到的唯一东西总是保存好文件。上传文件而不保存它

+0

在您的方案中不可能保存文件,然后删除它? – Sickest

+0

它是,但它似乎是浪费时间...是file_save_upload的方式去呢? – Maarten

回答

0

那么,你必须保存它:当文件通过PHP形式上传时,它总是被写入磁盘。幸运的是,drupal的“managed_file”-form元素将所有文件视为非永久性文件 - >如果不添加'file_usage_add',cron会及时清除它们。这意味着你不必删除它们。

长话短说:

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。然后该文件不会被“写入”任何地方。

相关问题