`
niqingyang
  • 浏览: 44183 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NII 单张图片AJAX上传+图片预览

    博客分类:
  • YII
阅读更多

功能说明:

1.适用于系统管理、卖家中心等后台。

2.点击控件会立即进行AJAX上传,上传成功后可以通过后台返回图片的保存路径和访问地址给前台进行预览图片。

3.在编辑页面此控件可以通过value设置预览图片的访问地址。

4.建议上传图片时将上传的Model属性和保存到数据库中的属性进行分开,因为ajax上传后返回存储值由于js安全机制无法直接赋值给type='file'的控件,所以需要额外有个隐藏域来保存此值,例如:属性"brand_logo"用于存储保存到数据库中的值,而"brand_logo_file"用于ajax上传。

 

使用说明:

1.前端需调用上传单张图片时可以用此控件,前端表单调用:

 

{input type='file-image' model=$model field='brand_logo_file' data-image="{imageurl}/{$model->brand_logo}" data-file="此处为type=“file”的Id"}
{input type='hidden' model=$model field='brand_logo'  }

2.页面中引入JS:

 

 

<!-- AJAX上传+图片预览 -->
{script src='@static/js/upload/jquery.ajaxfileupload.js,@static/js/pic/imgPreview.js'}

3.编写上传的JS脚本

 

 (1)上传单张图片,无需指定特殊目录的情况下可以调用封装好的JS函数,如下:

//单图AJAX上传 + 上传后预览图片
var fileElementId = "{inputId($model, 'brand_logo_file')}";
var fieldElementId = "{inputId($model, 'brand_logo')}";
$("body").on("change", "#" + fileElementId, function() {
	if ($("#" + fileElementId).val().length > 0 && $(this).valid()) {
		$.ajaxFileImageUpload({
			fileElementId: fileElementId,
			fieldElementId: fieldElementId
		});
	}
	return true;
});

 

 

 (2)上传单张图片,如果需要对上传文件进行特殊处理,比如保存到指定目录下,可以调用如下完整版:

 // 单图AJAX上传 + 上传后预览图片
$("body").on("change", "#{inputId($model, 'brand_logo_file')}", function() {
	if ($("#{inputId($model, 'brand_logo_file')}").val().length > 0 && $(this).valid()) {
		$.ajaxFileUpload({
			url: 'upload',
			fileElementId: "{inputId($model, 'brand_logo_file')}",
			dataType: 'json',
			success: function(result, status) {
				if (result.code == 0 && result.data) {
					var url = result.data.url;
					var value = result.data.value;
					$("#{inputId($model, 'brand_logo_file')}_image").attr("ref", url);
					$("#{inputId($model, 'brand_logo')}").val(value);
				} else if (result.message) {
					// 显示错误信息
					$.validator.showError($("#{inputId($model, 'brand_logo_file')}"), result.message);
				}
			},
		});
	}
	return true;
});

4.编写后台上传PHP代码:

public function actionUpload ()
	{
		$model = new BrandModel();
		$model->load();
		
		$result = $model->validate([
			'brand_logo_file'
		]);
		
		// 验证图片
		if($result)
		{
			$file = $model->brand_logo_file;
			//图片目录
			$dir = format('/brandlogos/{0,date,yyyy/MM/dd/}', [
				time()
			]);
			//保存图片
			$file->saveAs('@imagepath' . $dir);
			//返回图片存入数据库的值和访问的web地址
			return Result::json([
				'data' => [
					'url' => alias('@imageurl' . $dir . $file->filename), 
					'value' => $dir . $file->filename
				]
			]);
		}
		else
		{
			return Result::json([
				'code' => '-1', 
				'message' => $model->getFirstError('brand_logo_file')
			]);
		}
	}

 

参数说明:

1.type='file-image' 上传单图

2.model=$model 指定Model

3.field='brand_logo' 指定属性

4.value='' 如果未设置或者为空则初始化时无图片预览功能,不为空则为图片预览的地址。

5.data-image=''与value的作用一致。

6.{imageurl}可以调出的是图片服务器的地址。

 

 

 

如图:



 

 

 

 

  • 大小: 25.7 KB
分享到:
评论

相关推荐

    切片_nii_nii.gz切片_nii切片_nii图像切片_mri切片多少钱_

    在本讨论中,我们将深入探讨与“nii”和“nii.gz”文件格式相关的内容,以及如何处理这些切片数据。 “nii”文件格式是用于存储MRI和CT扫描结果的标准格式之一,全称为Neuroimaging Informatics Technology ...

    python实现批量nii文件转换为png图像

    之前介绍过单个nii文件转换成png图像: https://www.jb51.net/article/165693.htm 这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像。且图像单个文件夹的名称与nii名字相同。 import numpy as np import ...

    图像分割标签+nii格式的预处理

    "图像分割标签+nii格式的预处理"这个主题主要探讨了在图像分割任务中,如何对nii格式的图像数据进行处理和转换,以便于后续的机器学习模型训练。 首先,ITK-snap是一个强大的开源图像分析软件,特别适合于医学图像...

    matlab包 多张图片转三维nii可用

    标题中的“matlab包 多张图片转三维nii可用”指的是使用MATLAB环境下的工具或函数,将多张二维图像合并成一个三维的.nii(Nifti Image)文件。这种格式通常用于医学成像领域,如MRI或CT扫描,以便于数据存储和分析。...

    nii.rar_.n_MATLAB NII_nii_nii mat_nii.

    在MATLAB环境中处理医学影像数据时,经常遇到的两种文件格式是.nii和.hdr。这些文件格式主要用于存储MRI(磁共振成像)和其他类型的医学扫描数据。本程序包专门针对这两种格式,提供了一系列功能,包括读取、创建和...

    LabelMe之json转nii

    然后,步骤3涉及到将label.png从彩色图转换为二值图,因为.nii格式通常存储的是单通道的二值图像。在这个过程中,红色像素(通常是标注的颜色)被替换为白色。这通常通过读取label.png,然后对像素进行操作来完成,...

    matlab nii文件工具包

    该工具包可能包含了读取NII文件的函数,例如`nii_read`,可以将.nii或.nii.gz文件转化为MATLAB的数据结构,便于进一步的处理。它也可能提供了写入NII文件的函数,如`nii_write`,将MATLAB的数据转换回NII格式,以便...

    NIfTI_20140122.zip_MATLAB nii读取及显示_nii文件_加载nii

    标签中的“nii读取及显示”和“加载nii”强调了这个教程的核心内容,即如何在MATLAB中读取NIfTI文件并进行可视化。这在神经科学研究中是非常基础且重要的技能,因为数据的正确读取和展示是进一步分析的前提。 综上...

    nii格式医学图像查看器

    **nii格式医学图像查看器**是专为MacOS用户设计的一款软件,尤其适用于拥有M1芯片的设备。这款查看器允许用户方便地浏览、分析和处理医学领域中常见的.nii格式图像。.nii文件是一种专门用于存储神经影像学数据的文件...

    NIfTI_20140122.zip_matlab 打开 nii_nii 图像_twentyb4v

    标题中的"NIfTI_20140122.zip_matlab 打开 nii_nii 图像_twentyb4v"表明这是一个与MATLAB相关的工具包,专门用于处理和打开NIfTI格式的图像文件,特别是"Nii"或".nii"扩展名的文件。这个工具包可能包含了用于读取、...

    基于matlab的dicom、nii文件读取,去噪增强处理

    在医疗成像领域,DICOM(Digital Imaging and Communications in Medicine)和NII(NifTI-1 Image Format)是两种常见的文件格式。MATLAB作为强大的数值计算和数据分析平台,提供了处理这两种格式图像的能力。本教程...

    读取nii或nii.gz文件中的信息即输出图像操作

    读取nii或者nii.gz文件中的信息,并且输出图像。 import matplotlib from matplotlib import pylab as plt import nibabel as nib from nibabel.viewers import OrthoSlicer3D file = '' #你的nii或者nii.gz文件...

    python 用SimpleITK+pydicom 将4dnii图像转为单张dicom,并重新添加图像头信息

    用SimpleITK+pydicom 将4dnii图像转为单张dicom,并重新添加图像头信息!

    Pytorch 使用 nii数据做输入数据的操作

    ### PyTorch 使用 Nii 数据作为输入数据的操作详解 #### 一、背景介绍 在进行医学图像处理与分析时,通常会用到多种格式的图像数据。其中,Nifti(.nii)是一种常见的医学图像存储格式,主要用于保存三维(3D)或四...

    用来处理nii图像的matlab插件

    在matlab中想要处理nii格式的图像就需要Nifti包,不想去官网下的同学可以下我这个,matlab2016a和2019a都试过可以用

    matlab读取nii扩展.rar

    在MATLAB环境中,NII(Neuroimaging Informatics Technology Initiative)文件格式通常用于存储神经影像数据,如MRI和fMRI结果。这种格式是NIFTI(NIfTI-1 Image Format)的一种扩展,旨在提供一种标准且兼容的方式...

    NII 批量转换.py

    这是NII格式批量转换的Python源码。下载解压后直接运行。

    nii批量转mat和png

    nii批量转mat和png

    read_Nii_mask.tar.gz_nii_制作mask_读nii文件

    读取大量NII文件,并制作其mask,和 maskheader。去除噪声非脑组织

    nii.rar_matlab 打开 nii_nii_nii 图像_打开nii图像_C++_用matlap打开nii

    标题中的“nii.rar”可能是一个包含nii文件的压缩包,这种文件格式通常用于存储医学影像数据,如MRI或CT扫描。Nifti( Neuroimaging Informatics Technology Initiative)是这种格式的全称,它提供了高效的数据存储...

Global site tag (gtag.js) - Google Analytics