`

文件上传,managed_file

 
阅读更多

 

function image_example_style_form($form, &$form_state) {

  $form['image_example_image_fid'] = array(
    '#title' => t('Image'),
    '#type' => 'managed_file',
    '#upload_validators' => array('file_validate_extensions' => array('jpg png bmp jpeg')),  //允许上传文件的类型
    '#description' => t('The uploaded image will be displayed on this page using the image style choosen below.'),
    '#default_value' => variable_get('image_example_image_fid', ''),
    '#upload_location' => 'public://image_example_images/',//指定上传的位置
  );

  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  return $form;
}
function image_example_style_form_validate($form, &$form_state) {

  if (!isset($form_state['values']['image_example_image_fid']) || !is_numeric($form_state['values']['image_example_image_fid'])) {
    form_set_error('image_example_image_fid', t('Please select an image to upload.'));
  }
}

function image_example_style_form_submit($form, &$form_state) {

  if ($form_state['values']['image_example_image_fid'] != 0) {

    $file = file_load($form_state['values']['image_example_image_fid']);
    $file->status = FILE_STATUS_PERMANENT;
    file_save($file); //保存图片信息到数据库中 表file_managed中
    file_usage_add($file, 'image_example', 'sample_image', 1);//在表file_usage中记录一个文件的添加,删除该文件时会根据该记录去查询删除
    variable_set('image_example_image_fid', $file->fid);
    drupal_set_message(t('The image @image_name was uploaded and saved with an ID of @fid and will be displayed using the style @style.', array('@image_name' => $file->filename, '@fid' => $file->fid, '@style' => $form_state['values']['image_example_style_name'])));
  }
  // If the file was removed we need to remove the module's reference to the
  // removed file's fid, and remove the file.
  elseif ($form_state['values']['image_example_image_fid'] == 0) {
    // Retrieve the old file's id.
    $fid = variable_get('image_example_image_fid', FALSE);
    $file = $fid ? file_load($fid) : FALSE;
    if ($file) {
      // When a module is managing a file, it must manage the usage count.
      // Here we decrement the usage count with file_usage_delete().
      file_usage_delete($file, 'image_example', 'sample_image', 1);//删除表file_usage中的记录,
      file_delete($file); //删除文件和数据库中(表file_managed和表file_usage)的记录
    }

    variable_set('image_example_image_fid', FALSE);
    drupal_set_message(t('The image @image_name was removed.', array('@image_name' => $file->filename)));
  }

  // Save the name of the image style choosen by the user.
  variable_set('image_example_style_name', $form_state['values']['image_example_style_name']);
}

 

 

 

分享到:
评论

相关推荐

    jsf 文件上传和下载

    3. **后台处理**:在JSF Managed Bean中定义一个方法来监听文件上传事件。例如: ```java @ManagedBean @ViewScoped public class FileUploadBean { private Part file; // Java Servlet 3.0的Part接口,用于处理...

    文件上传java测试程序.rar

    如果应用使用了JSP(JavaServer Pages)或JSF(JavaServer Faces),文件上传的处理可以放在后台的Managed Bean中,而JSP或JSF页面负责显示表单和处理用户交互。 7. **文件大小限制**: 为了防止DoS攻击或过度...

    JSF文件上传下载

    2. **后台bean**:在后台,我们需要一个Managed Bean来处理文件上传。`@ManagedBean`和`@SessionScoped`注解用于创建一个会话bean。例如: ```java @ManagedBean @SessionScoped public class FileUploadBean { ...

    JSF实现的文件上传

    总结,JSF提供了一种直观的方式来实现文件上传功能,通过`<h:inputFile>`组件和Managed Bean,开发者可以轻松地处理文件上传的前端和后端逻辑。为了处理大文件并优化性能,可能需要采用额外的技术和策略。同时,确保...

    JSF页面,<p:fileUpload组件文件上传

    接下来,我们需要创建一个名为`FileUploadController`的Managed Bean,用于处理文件上传逻辑: ```java import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import org.primefaces....

    一个上传文件的jsf组件

    综上所述,JSF中的文件上传涉及到使用`&lt;h:inputFile&gt;`组件接收用户选择的文件,通过Managed Bean处理上传事件,并在后台进行文件的存储或处理。开发者还需要考虑安全性与性能优化,确保文件上传功能既实用又安全。

    56、添加文件上传FileManaged类1

    这将自动生成一个迁移文件,该文件包含了创建`file_managed`表的信息。我们可以修改表名使其更符合习惯: ```php // src/Migrations/版本号_Up.php public function getDescription(): string { return 'Create ...

    ADF上传下载

    - **方式一**:通过`&lt;af:inputFile&gt;`控件结合`valueChangeListener`监听器来处理文件上传事件。 ```xml &lt;af:inputFile label="Upload:" valueChangeListener="#{managedBean.fileUploaded}"/&gt; ``` - **...

    jsf上传文件用到的包

    在JSF(JavaServer Faces)框架中实现文件上传功能,通常会涉及到多个依赖库,以处理文件上传的各个阶段,包括文件的解析、临时存储以及后续的业务逻辑处理。在这个场景下,`JSF上传文件用到的包`指的是一个项目中...

    jsf文件上传

    JSF(JavaServer Faces)是Java平台上的一个用于构建用户界面的组件模型框架,尤其...总的来说,JSF文件上传涉及前端组件、后端处理、配置和库的结合,通过这种方式,开发者可以方便地在JSF应用中实现文件上传功能。

    jsf2.0上传组件(servlet3.0)

    这段代码创建了一个文件上传表单,其中`#{fileUploadBean.file}`引用了Managed Bean中的属性,用于存储上传的文件。 Servlet 3.0引入了对文件上传的内置支持,无需像Servlet 2.x那样依赖第三方库如Commons ...

    jsf实现基于ajax的上传例子

    ### JSF实现基于Ajax的文件上传案例解析 #### 核心知识点概述 本文将深入探讨如何利用JavaServer Faces (JSF) 和 Ajax 技术来实现一个用户友好的文件上传组件。传统上,通过HTML `&lt;input type="file"&gt;` 标签进行...

    今天上传的一个重要文件

    WebLogic Server是一个Java EE应用服务器,域(Domain)是WebLogic Server的基本管理单元,它包含了多个服务器实例(Managed Servers)和一个管理服务器(Admin Server)。管理服务器负责监控和管理这些服务器实例。...

    mft-upload:一种用于将文件上传到SOAP WebService的REST实用程序。 它是可配置的,并且可以与Oracle托管文件传输(MFT)一起使用

    上载一个简单的REST实用程序,用于将文件上传到托管文件传输服务器或其他基于文件的集成服务器,SaaS或PaaS云应用程序。用例该软件包公开了一个REST接口,可以上传到MFT SOAP WebServices或任意HTTP表单应用程序。 ...

    c#编写的数字签名演示和文件摘要生成程序

    本项目"数字签名演示程序"可能包含了以上提到的各个步骤的实现,以及友好的用户界面,便于用户上传文件、查看生成的摘要和数字签名,以及进行签名验证。通过实际操作,开发者能够更深入地理解数字签名的工作流程,并...

    Serv-U-MFT-Server 15.1.2

    MFT不仅提供基本的文件上传和下载功能,还支持复杂的文件转移策略、审计与报告、用户权限管理以及自动化工作流。这使得企业能够更好地控制和跟踪文件传输活动,符合法规遵从性和内部安全政策。 安装使用说明.txt ...

    salt-formulas:用于存放salt sls文件。以模块化的方式组织不同的组件

    salt-formulas用于存放salt sls文件。以模块化的方式组织不同的组件。以tomcat为例简单说明组件组织...在执行file.managed时,使用saltenv从base环境获取对应的包。以java的安装为例子:- source: salt://java/pkgs/{{

    FTP上传oracle数据,安装包的制作及托盘的使用

    FTP(File Transfer Protocol)是一种网络协议,用于在计算机之间传输文件。在Oracle数据库环境中,如果需要将本地的数据上传到远程服务器,可以通过FTP服务实现。开发者可以使用C#语言编写程序,调用FTP相关的类库...

    weblogic集群安装及nginx https反向代理及负载均衡配置

    - **调整 Java 安全设置**:修改 `$JAVA_HOME/jre/lib/security/java.security` 文件中的 `securerandom.source` 参数,将其设置为 `file:/dev/./urandom` 以提高启动速度。 #### 二、Nginx HTTPS 反向代理及负载...

    C# 散列、加密和解密的例子

    散列通常用于验证数据完整性,例如,当你存储文件时,可以计算其散列值并保存,之后在读取时再次计算,对比是否一致。例如,`System.Security.Cryptography`命名空间提供了多种散列算法的实现,如`using System....

Global site tag (gtag.js) - Google Analytics