Drupal创建自定义表单,上传文件代码

Drupal中创建自定义表单,用来上传文件,对上传文件做一些操作。以下是放在Module中的代码:

一、菜单建立表单路径

/** Implementation of hook_menu(). */
function moduleName_menu ()
{
  $items                          = array();
  $items[‘admin/import‘] = array(
    ‘title‘ => ‘title‘,
    ‘page callback‘ => ‘drupal_get_form‘,
    ‘page arguments‘ => array(‘importform‘),
    ‘access callback‘ => TRUE,
    ‘type‘ => MENU_LOCAL_TASK,
    ‘context‘ => MENU_CONTEXT_INLINE, // 只在菜单里显示
  );
  return $items;
}

二、生成表单

function importform($form, &$form_state) {
  $form = array();
  $form[‘file‘] = array(
    ‘#type‘ => ‘file‘,
    ‘#title‘ => ‘题库模板文件‘,
    ‘#description‘ => "请上传题目录入文件, 允许的文件格式为: xlsx",
  );
  $form[‘submit‘] = array(
    ‘#type‘ => ‘submit‘,
    ‘#value‘ => ‘导入‘,
  );

  return $form;
}

三、验证表单

function importform_validate($form, &$form_state) {
  $file = file_save_upload(‘file‘, array(
    ‘file_validate_extensions‘ => array(‘xlsx‘),
  ));
  if ($file) {
    if ($file = file_move($file, ‘public://‘)) {
      $form_state[‘values‘][‘file‘] = $file;
    }
    else {
      form_set_error(‘file‘, t(‘文件上传失败!‘));
    }
  }
  else {
    form_set_error(‘file‘, t(‘没有文件被上传!‘));
  }
}

四、上传表单

function importform_submit($form, &$form_state) {
  $file=$form_state[‘values‘][‘file‘];
  unset($form_state[‘values‘][‘file‘]);
  $file->status = FILE_STATUS_PERMANENT;
  file_save($file);
  //这边可以做一些逻辑事情
  drupal_set_message(t(‘@filename 该文件已上传成功!‘, array(‘@filename‘ => $file->filename)));
}
时间: 05-20

Drupal创建自定义表单,上传文件代码的相关文章

form表单上传文件使用multipart请求处理

在开发Web应用程序时比较常见的功能之一,就是允许用户利用multipart请求将本地文件上传到服务器,而这正是Grails的坚固基石——spring MVC其中的一个优势.Spring通过对Servlet API的HttpServletRequest接口进行扩展,使其能够很好地处理文件上传.扩展后的接口名为org.springframework.web.multipart.MultipartHttpServletRequest,其内容如清单7-31所示. 清单7-31  org.springf

SpringMVC表单上传文件+表单数据

本次遇到的需求是:在用户提交表单数据的时候,同时上传文件.并且表单数据传到后台可以组成一个pojo controller层的方法定义如下: public Object apply(HttpServletRequest request, @RequestParam("file") MultipartFile file, Application application) { } 对于上传的文件的接收使用:@RequestParam("file") MultipartFi

thinkphp表单上传文件并将文件路径保存到数据库中

上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `img_name` varchar(255) DEFAULT NULL COMMENT '图片名称',  `img_url` varchar(255) DEFAULT NULL COMMENT '图片路径',  `create_time` te

相册选择头像或者拍照 上传头像以NSData 图片二进制格式 表单上传

一.点击头像图片 或者按钮 在相册选择照片返回img,网络上传头像要用data表单上传 (1)上传头像属性 // 图片二进制格式 表单上传 @property (nonatomic, strong) NSData *imageWithData; (2)头像点击事件 - (void)headImageEvent{ NSLog(@"上传头像"); [self selectPhotoAlbumWithSelectPhotoHandle:^(UIImage *img) { self.heade

html5表单上传控件Files筛选指定格式的文件:accept属性过滤excel文件

摘自:http://blog.csdn.net/jyy_12/article/details/9851349 (IE9及以下不支持下面这些功能,其它浏览器最新版本均已支持.) 1.允许上传文件数量 允许选择多个文件:<input type="file" multiple> 只允许上传一个文件:<input  type="file" single> 2.上传指定的文件格式 <input type="file" acce

Django表单上传

任务描述:实现表单提交(上传文件) 1.项目目录: 2.源代码: regist.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>regist</title> </head> <body> <h3>regist</h3> <hr> <

PHP上传文件代码练习2 (重复文章)

表单: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题</title> </head> <body> <form action="upload.php" method="post" enctype=

ExtJS + fileuploadfield上传文件代码

后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=RequestMethod.POST) public void uploadFile(@RequestParam(value="file",required=true) MultipartFile file ,HttpServletResponse response) { ModelMap model

表单上传数据,第一次写,很多地方不理解。。。写了个开头就写不下去了,希望有人能帮忙完善下。

1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="utf-8" /> 6 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 7 <meta name="viewport" content="width=device-w