tacoberu/nette-form-fileupload 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tacoberu/nette-form-fileupload

最新稳定版本:v1.0.1

Composer 安装命令:

composer require tacoberu/nette-form-fileupload

包简介

Uploading files has its specifics. It is not enough just to upload the file. We also want to show it when it's already uploaded (preferably with a preview). We want to possibly delete it or replace it with another version.

README 文档

README

Uploading files is easy. But if we have the file already uploaded in the system, we can want

  • only display it (preferably with a preview),
  • or delete the file,
  • or replace the file with another version.

A somewhat inconvenient situation is when we get some unrelated error elsewhere in the form. So we return the form for the user to correct it. But the uploaded file or files must be restarted. We solve this with a transaction. Once uploaded, the file is stored in a special storage (by default it is handled as a tempo directory, it can be changed), and entered into the system after successfully saving the form.

We represent image files as images. If the standard renderer is not suitable, we can set our own.

The input value can have three options:

  • Null: none, or original file deleted
  • FileUploaded: new file uploaded
  • FileCurrent: the original file stored in the system

Installation

composer require tacoberu/nette-form-fileupload

Use

use Taco\Nette\Forms\Controls\FileCurrent;
use Taco\Nette\Forms\Controls\FileControl;
use Taco\Nette\Forms\Controls\GenericFilePreviewer;

$form = new Nette\Forms\Form;

$form['portrait'] = (new FileControl('Portrait:'))
	->setDefaultValue(new FileCurrent("uploaded/account/56695/mp16.jpg", "image/jpeg"))
	->setPreviewer(new GenericFilePreviewer());

Transactions

When the file is successfully uploaded to the server, it is automatically moved to the storage, transaction. This will serve to if the form is not processed, but is, for example, passed back to the user for validation reasons, it is not necessary to upload the file again. After successful processing, the file is available using $control->getValue() like the other values.

After the file is uploaded to the system, the transaction can be discarded. Well, in case using the default storage UploadStoreTemp, delete the directory. We can either do this explicitly:

$form['portrait']->destroyStore();

Or leave it to the GC, which will delete it automatically after a certain period of time.

UploadStoreTemp, GC

Automatic greasing is implemented in UploadStoreTemp. it acts like that after the page exits, all relevant transactions are passed through the destructor and checks if the transaction is older than UploadStoreTemp::$gcAgeLimit. This only deletes UploadStoreTemp::$gcMaxCount transactions/directories to spread the load.

This behavior is only a matter of the UploadStoreTemp implementation.

统计信息

  • 总下载量: 430
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-04-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固