php – Howto:Drupal文件上传表单

前端之家收集整理的这篇文章主要介绍了php – Howto:Drupal文件上传表单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Drupal 6中,我很难弄清楚如何编写一个带有上传文件的模块的模块.任何人都可以解释一下,或者指出一个很好的例子/文档来讨论它吗?

编辑:

这完全是我想要做的:

>用户上传.csv
>模块读取文件的第一行以获取字段
>用户将csv字段与db字段匹配
>每个csv行都保存为节点(首先预览)

到目前为止,我可以成功地完成1,2和4.但目前还不清楚这些步骤应该如何相互影响($form_state [‘redirect’]?应该如何使用?),以及最佳实践是什么.对于3,我应该将其保存为会话数据吗?

如何在各个步骤之间传递文件数据?

我知道node_import存在,但它从来没有对我有用,我的错误请求被忽略了.

第二次编辑:我在每个需要处理文件页面的开头和结尾使用了这个:

$file = unserialize($_SESSION['file']);
//alter $file object
$_SESSION['file'] = serialize(file);

我不确定它是最好的做法,但它一直在工作.

这不是太难,你可以看到一些信息 here.一个只有文件上传的表单的例子.
function myform_form($form_state) {
    $form = array('#attributes' => array('enctype' => 'multipart/form-data'));
    $form['file'] = array(
        '#type' => 'file','#title' => t('Upload video'),'#size' => 48,'#description' => t('Pick a video file to upload.'),);
    return $form;
}

编辑:

现在保存文件使用file_save_upload功能

function myform_form_submit($form,$form_state) {
    $validators = array();
    $file = file_save_upload('file',$validators,'path');
    file_set_status($file,FILE_STATUS_PERMANENT);
}

第二次编辑:

有很多问题和方法来做你描述的事情.我不会深入了解如何处理csv文件的实际代码.我建议您使用文件ID来跟踪文件.这将使您能够制作带有fid的URL并使用它来加载您想要处理的文件.
要从表单进入下一步,您可以使用#redirect表单属性让您的用户进入下一步.从那里确实取决于你做什么,你需要做什么.

猜你在找的PHP相关文章