olicek/dropzone-uploader

Nette 框架的 Uploader

dev-master 2016-09-16 09:20 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:42:17 UTC


README

安装

composer require olicek/dropzone-uploader:dev-master

在扩展中注册

extensions:
    dropzone: Oli\Form\DropzoneUploaderExtension 

最后,将 client-site/dropzoneUploader.js 链接到页面。

使用

public function createComponentUploader($name, DropzoneUploaderFactory $factory)
	{
		$dropzone = $factory->create();
		$path = $dropzone->getPath();
		$dropzone->onSuccess[] = function (DropzoneUploader $dropzoneUploader, $targetPath, $name, $suffix) {
			$photo = new Photo;
			$photo->filename = $name . '.' . $suffix;
			$photo->suffix = $suffix;

			$this->photosRepository->save($photo);
		};
		return $dropzone->setPath($path . '/' . $this->galleryEntity->folder . '/1600x1200');
	}

在模板中

{control uploader}

理论上应该就这些。我尽量让 client-site/dropzoneUploader.js 文件尽可能通用,以便可以在不修改它的情况下使用。其实它根本可以不用,关键是 .dropzone 类,当然,它也可以改变 :-)

上传后

上传成功后,将自动跳转到预设的信号 handleRefresh。在 settings 部分可以选择是否使用 ajax,以及跳转到的地址。目前只能选择信号或 this,如果需要,我还会添加跳转到某个展示者的功能。

示例

dropzone:
	path: 'gallery/photos'
	settings:
	    ajax: on
dropzone:
	path: 'gallery/photos'
	settings:
	    onSuccess: 'this'