上传文件而不保存

时间:2014-01-19 08:22:47

标签: drupal-7

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

1 个答案:

答案 0 :(得分:0)

嗯,你必须保存它:当文件通过PHP格式上传时,它总是写在磁盘上。 Luckely为你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。然后该文件将不会被写入"任何地方。