文档章节

上传文件或图片,图片存在即显示问题

帅的不像男的
 帅的不像男的
发布于 2016/03/28 11:27
字数 747
阅读 69
收藏 0
点赞 1
评论 0

上传图片时要给from加上enctype="multipart/form-data"

<form name="userInfo" method="post" action="first_submit.jsp"    ENCTYPE="multipart/form-data"> 
表单标签中设置enctype="multipart/form-data"来确保匿名上传文件的正确编码。 
如下: 

<tr> 
      <td height="30" align="right">上传企业营业执照图片:</td> 
      <td><INPUT TYPE="FILE" NAME="uploadfile" SIZE="34"    onChange="checkimage()"></td> 
    </tr>


就得加ENCTYPE="multipart/form-data"。 


表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. 
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的: 

SmartUpload su = new SmartUpload();//新建一个SmartUpload对象 
su.getRequest().getParameterValues();取数组值 
su.getRequest().getParameter( );取单个参数单个值


或者加入将form的属性加到struts.xml中去

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
	<form-beans>
		<form-bean name="AdminForm"
			type="org.apache.struts.validator.DynaValidatorForm">
			<form-property name="appios" type="org.apache.struts.upload.FormFile"/>
			<form-property name="file" type="org.apache.struts.upload.FormFile"/>
			<form-property name="image" type="org.apache.struts.upload.FormFile"/>
        </form-bean>		
</form-beans>
<action-mappings>		
	<action path="/admin"
		type="org.springframework.web.struts.DelegatingActionProxy"
		name="AdminForm" parameter="method" scope="request"
		validate="false">
                <forward name="userinfolist" path="/web/tjix/manage/user/userinfolist.jsp" />
		</action>		
</action-mappings>
</struts-config>

后台action获取文件并存储

       String phs = getServlet().getServletContext().getRealPath("/");//获取本地项目路径
       String path = phs+"data/resources/image/union/upload/";//服务器存储图片路径 上传的最终绝对路径
	File file = new File(path);
		if (!file.exists()) {
			file.mkdirs();
		}

	FormFile formFile = (FormFile) dvf.get("image");
	String ImgNames = formFile.getFileName();
	String appname = Uuid.create().toString() + ImgNames.substring(ImgNames.length() - 4);//图片名称
	FileOutputStream out = new FileOutputStream(path+ "/" + appname);
	out.write(formFile.getFileData());
	out.flush();
	out.close();
	//http://localhost:8080/fileUpload/p/file!upload
	String portrait = Constant.integral_Path+"fileUpload/p/file!upload"+appname;//图片路径存入数据库

异步需要js实现,后台获取路径

多个图片可以用数组实现

                 //图片同步 data/resources/image/union/upload/
			String ycpath = Constant.remote_image_server_url;//远程服务器地址 最终上传到此服务器路径
			String phs = getServlet().getServletContext().getRealPath("/");//获取本地项目路径
			String path = phs+"union/upload/";//服务器存储图片路径 上传的最终绝对路径
			File file = new File(path);
			if (!file.exists()) {
				file.mkdirs();
			}
			FormFile[] picpathFile = new FormFile[3];
			picpathFile[0] = (FormFile) dvf.get("enterpriseimg");
			picpathFile[1] = (FormFile) dvf.get("enterpriseimg2");
			picpathFile[2] = (FormFile) dvf.get("enterpriseimg3");
			picpathFile[3] = (FormFile) dvf.get("enterpriseimg4");
			String[] picpath = new String[3];
			for (int i = 0; i < 4; i++) {
				String ImgNames = picpathFile[i].getFileName();
				if (StringUtil.isNullOrBlank(ImgNames)) {
					picpath[i] = "";
				} else {
					String appname = Uuid.create().toString() + ImgNames.substring(ImgNames.length() - 4);// 图片名称
					FileOutputStream out = new FileOutputStream(path + "/" + appname);
					out.write(picpathFile[i].getFileData());
					out.flush();
					out.close();

					// http://localhost:8080/fileUpload/p/file!upload
					picpath[i] = Constant.images_Path+"union/upload/"+appname;
				}
			}

判断图片是否显示,不能显示则用其他图片默认

//picpath  图片路径
<c:if test="${good_list.picpath eq '' || good_list.picpath eq 'null' 
|| good_list.picpath eq null}">
								     
 <img src="/cglib/alliance/images/goods.png" alt="${good_list.name}">
</c:if>
<c:if test="${good_list.picpath ne '' && good_list.picpath ne 'null' && good_list.picpath ne null}">
<img src="${good_list.picpath}" onerror="javascript:this.src='/cglib/alliance/images/goods.png';" 
alt="${good_list.name}" />
<!--  <img src="${good_list.picpath}" alt="${good_list.name}">-->
</c:if>


© 著作权归作者所有

共有 人打赏支持
帅的不像男的
粉丝 10
博文 84
码字总数 46416
作品 0
深圳
程序员
INPUT[type=file] 的 'value' 属性值在各浏览器中存在差异

标准参考 当一个 INPUT 元素的 'type' 属性值设置为 'file' 时创建了一个文件选择控件(file select),其中 INPUT 元素的 'value' 属性值便是文件的初始名称。 另外,在 IE6 和 IE7 下通过此方...

zkool ⋅ 2012/06/28 ⋅ 0

php用户头像上传,前端将图片转为BASE64后上传后写入文件,之后将其读取显示出现的问题

用php写用户头像上传,前端用FileReader 对象中的readAsDataURL将图片转为BASE64后用ajax上传,后端php将其写入以用户id命名的文件中。每次检测以该用户id命名的文件是否存在,存在的话就读取...

未知生物 ⋅ 2017/01/25 ⋅ 5

php移动文件的函数 move_uploaded_file()和copy

最近遇到的问题就是:用户提交一个图片,我这边给缩放成三种格式的大小,缩放的方法存在,所以我这边直接就调用三次,结果只有一张图片上传,采用循环调用的方法还是只有一个图片,后来发现 ...

PHPUI ⋅ 2013/05/15 ⋅ 0

spring mvc上传文件的简单例子总结及注意事项

1.创建maven项目 在pom.xml里面引入该依赖的jar包,pom.xm的代码如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s......

双月通天 ⋅ 2015/09/29 ⋅ 0

Uploadify+MultipartFile实现文件上传

一.form表单(截选) <table id="myTable" border="0" cellspacing="0" cellpadding="0"> <tr id='myTr'> <td class="label">合同附件:</td> <td style="padding:0" width="23%"><input class......

Romanceling ⋅ 2016/08/23 ⋅ 0

Thinkphp使用jQuery File Upload异步上传图片实例教程(1):上传单张图片

图片上传是很多网站必备的功能之一,异步多图上传也是很多初学者比较头疼的问题。所以今天我们就使用比较热门的Thinkphp和jquery File upload插件完整的开发一个多图异步上传功能。 这篇文章...

星空幻颖 ⋅ 2017/02/12 ⋅ 0

Laravel+Layer 图片上传功能整理

♩ 背景 昨天在自己的 框架项目中,希望集成 的图片上传功能 但是在 提交请求时,一直显示 500 报错 ♪ 分析 ⒈ 问题所在 最后将核心代码摘出,放到 框架以外运行,发现代码是没有问题的,因...

moTzxx ⋅ 01/04 ⋅ 0

Ueditor相关问题

将UEditor部署到项目中之后,工具栏上面的提示文字出现乱码,怎么办? 这是由于项目本身的编码格式和UEditor的编码格式不同造成的。目前UEditor只提供了UTF-8格式的版本,如果用户网站的编码...

freedonn ⋅ 2014/08/31 ⋅ 0

ASP.NET 使用js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)

在写这篇的时候本来想把标题直接写成报错的提示,如下: “SecurityError:Blocked a frame with origin "http://localhost:55080" from accessing a cross-origin frame.” 但是有点长,会显...

我不会抽烟 ⋅ 2014/09/05 ⋅ 0

问一个python django + ajax 图片上传的问题

我是想实现这样的功能: 在发贴子的时候,如果有图片,就点击图片,图片会自动上传并以这样的 这样的方式扎入编辑器里。下面是代码。 遇到的问题在后面会有说明 models.py views.py url.py ...

bb2018 ⋅ 2017/07/29 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 38分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 45分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 52分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 53分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 57分钟前 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 今天 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部