页面
-------------------------------------------------
- <?php $form=$this->beginWidget('CActiveForm', array(
- 'id'=>'add-form',
- 'enableClientValidation'=>true,
- 'clientOptions'=>array( 'validateOnSubmit'=>true,),
- 'htmlOptions'=>array('enctype'=>'multipart/form-data'),
- ));
- ?>
- <table>
- <tr>
- <td width="20%">
- <b>ファイルパス:</b> <font color="red">*</font>
- </td>
- <td width="80%">
- <?php echo CHtml::activeFileField($model, 'file'); ?>
- <?php echo $form->error($model,'file');?>
- </td>
- </tr>
- </table>
- <table>
- <tr>
- <td>
- <?php echo CHtml::button('上传', array('submit' => array('downfiles/upload'))); ?>
- </td>
- </tr>
- </table>
Model
-------------------------------------------------
- public function rules()
- {
- return array(
- array('file', 'file','allowEmpty'=>true ,
- 'types'=>'jpg, gif, png, doc, txt',
- 'maxSize'=>1024 * 1024 * 10, // 10MB
- 'tooLarge'=>'The file was larger than 10MB. Please upload a smaller file.',
- ),
- );
- }
上传
-------------------------------------------------
- public function actionUpload(){
- $model = new DownFiles();
- if(isset($_POST["DownFiles"])){
- $model->attributes=$_POST['DownFiles'];
- $file = CUploadedFile :: getInstance($model, 'file');
- if(is_null($file)){
- yii::app ()->user->setFlash('failed', '请选择上传文件');
- $this->render('upload', array('model' => $model));
- return ;
- }
- if (is_object($file) && get_class($file) == 'CUploadedFile') {
- Yii::log("File Name : " . $file->getName() );
- // 文件类型
- $model->fileType = strtolower($file->getExtensionName());
- // 存储文件名
- $newFileName = date('YmdHis') . '_' . rand(1000, 9999) . '.' . $model->fileType;
- // 服务器端存储路径
- $newFilepath = Yii::app()->params['upload_folder'] . $newFileName;
- // 上传文件名
- $model->fileName = $file->getName();
- // 文件类型 (application/x-msdownload、application/pdf、application/octet-stream)
- $model->fileType = $file->getType();
- // 文件大小
- $model->fileSize = $file->getSize();
- if ($model->validate() && $model->save()){
- // 将文件存在在服务器端
- $file->saveAs($newFilepath);
- yii::app ()->user->setFlash('successed', '上传成功');
- } else {
- yii::app ()->user->setFlash('failed', '上传失败');
- }
- } else {
- yii::app ()->user->setFlash('failed', '上传失败');
- }
- $this->render('upload', array('model' => $model));
- }else{
- $this->render('upload', array(
- 'model' => $model,
- ));
- }
- }
文件
-------------------------------------------------
- public function actionDownload(){
- if (isset($_GET["id"])) {
- $id = $_GET["id"];
- $model = DownFiles::model()->find('id =:id', array('id' => $id));
- if ($model == null) {
- throw new CHttpException ('500', '文件不存在');
- } else {
- // 服务器端文件的路径
- $fileName = $model->saveFilePath ;
- if (file_exists($fileName)){
- yii::app ()->request->sendFile ($model->fileName, file_get_contents ($fileName));
- }
- }
- }
- }
相关推荐
yii2 文件上传笔记
1. **文件上传处理**:Yii2框架内置了文件上传组件,可以方便地处理文件上传。你需要在模型(Model)中定义一个属性来接收上传的头像文件,并在规则(Rules)中设定允许的文件类型和大小限制。 2. **图片处理**:...
在 Yii2 中,处理文件上传是常见的需求,尤其是图片上传,它能够为用户界面增添动态性和互动性。"yii2 图片上传扩展插件"就是为了简化这一过程而设计的。 该插件主要解决以下问题: 1. **图片预览**:允许用户在上...
yii2-upload-behavior, ActiveRecord的Yii2文件/图像上传行为 Yii2文件/图像上传行为这个包是两种类似行为的集合。 第一个允许你将上传的文件保留为。 第二个允许你为上传的图片生成缩略图。 可以为不同的属性多次...
Yii2.0框架是一种流行的PHP开发框架,它基于MVC(模型-视图-控制器)设计...通过本文的介绍,读者可以了解到Yii2.0框架中文件上传处理和数据库导入的基本方法,并可以在实际项目中根据具体需求进行相应的扩展和定制。
- **框架结构介绍**:解释 Yii2.0 的基本目录结构、文件组织方式。 - **控制器与视图**:详细介绍如何创建控制器、视图文件以及实现基本的路由机制。 - **模型与数据库操作**:学习使用 Active Record 进行数据库...
Yii提供了一种方便的方式来处理文件上传,包括图片。`CUploadedFile`类是Yii中处理文件上传的核心,它可以从HTTP请求中获取上传文件的信息。你需要创建一个表单,包含一个`enctype="multipart/form-data"`的`<form>`...
Yii2 后台系统可能会使用 `yii\webUploadedFile` 类来处理文件上传,配合 `yii\imagine` 扩展进行图片处理,如裁剪、缩放等,确保头像符合预设尺寸。此外,文件存储可以本地化,也可以使用云存储服务如 AWS S3 或...
Plupload 是一个用于处理文件上传的 JavaScript API,它支持多文件选择、文件类型过滤、请求分块、客户端图像缩放等功能,它使用不同的运行时来实现这一点,例如 HTML 5、Silverlight、Flash、Gears 和 BrowserPlus...
一个Yii2模块/小部件,用于上传文件 安装 安装此扩展的首选方法是通过 。 无论运行 php composer.phar require --prefer-dist icherisher/yii2-plupload "*" 或添加 "icherisher/yii2-plupload": "*" 到composer...
9. **高级特性**:Yii2还有许多高级特性,如命令行工具、邮件发送、文件上传、队列处理、任务调度等。这些特性使得Yii2能够满足各种复杂应用场景。 10. **最佳实践**:学习Yii2开发手册,不仅是为了掌握框架的使用...
4. 服务器端处理:在`@web/upload`指定的URL,你需要编写处理图片或文件上传的控制器方法。这通常包括验证上传文件的安全性,保存文件到服务器,返回上传成功的JSON响应等。 5. 与模型结合:如果编辑器内容与数据库...
其中一个常用的功能是文件上传,Yii2为文件上传提供了内置的支持,本文将详细介绍如何利用Yii2自带的UploadedFile类来实现文件上传功能。 首先,我们需要创建一个模型来处理上传的文件。在这个过程中,我们定义了一...
用于Yii2的BlueImp文件上传小部件 呈现一个。 该插件集成了多个文件选择,拖放支持,进度条,图像验证和预览。 安装 安装此扩展的首选方法是通过 。 无论运行 $ composer require 2amigos/yii2-file-upload-widget...
2. **加载配置文件:** 加载配置文件,将配置信息应用于Application对象。 3. **组件注册:** 注册各种组件和服务提供者,如DB连接、URL管理器等。 4. **请求解析:** 解析用户的HTTP请求,确定请求的路由。 5. **...
3. **创建控制器和视图**:在Yii2.0的控制器中,创建一个方法来处理Ueditor的上传请求,比如图片上传。在视图文件中,使用Ueditor的Widget来渲染编辑器,如下所示: ```php use dosamigos\ueditor\UeditorWidget; ...
在这种情况下,将文件上传至可靠的共享平台或个人网站可以作为备份方案,以确保其他开发者能顺利获取资源。 总的来说,Yii 2.0.9 是一个强大且灵活的PHP框架,适合开发大型企业级应用。其高效的性能、全面的安全...
### Yii2.0多文件上传实例说明 在本篇文章中,我们将详细介绍如何在Yii2.0框架中实现多文件上传的功能。通过一个具体的实例——创建控制器`FormController`、模型`Uploadm`以及相关的视图文件,来演示整个多文件...
yii2 自带的编辑器中 没有直接添加本地图片上传的功能,需要自己添加,所以需要修改一些vendor下的文件,进行修改