File Struct 上传JPG格式图片变成tmp 服务器上传文件名字随机起

在使用SSH框架进行图片上传时,遇到上传后的文件名变为tmp格式,尽管文件内容未变,但格式错误。检查编码问题无果,最终发现是由于在设置'uploadContentType'和'uploadFileName'时出现错误,导致文件名随机生成。解决方案是确保上传时提供正确的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天在写ssh框架中上传图片的代码,解决了一部分,然后卡在了图片上传之后的文件名不一致,就像随机取的。从我上传的jpg格式变成了tmp。

    格式是不对了,但是文件内容并没有发生变化,说明文件是上传成功了。起初以为是编码问题,很多的有出现编码问题的地方都检查了一遍,没有发现任何的问题。

    其实可以上传也可以看,总体来说,那些随机名字还帮你保证了不会有重复的出现,但是看起来十分的不舒服,查了很多资料都找不到对应的解释,真的烦人。

    主要是没有报错,控制台就没怎么看了,然后自己尝试去在控制台打印点什么,才发现有两个错误。

Unexpected Exception caught setting 'uploadContentType' on 'class cn.wyu.bestHelp.web.action.yy.HospitalAction: Error setting expression 'uploadContentType' with value ['image/jpeg', ]

Unexpected Exception caught setting 'uploadFileName' on 'class cn.wyu.bestHelp.web.action.yy.HospitalAction: Error setting expression 'uploadFileName' with value ['XXX.jpg', ]


    原来这个file上传需要三个参数的!!!真实的,完全就是粗心大意,那个upload可以随意的,那是定义file。

//属性驱动
	private File upload;
	
	private String uploadContentType;
	
	private String uploadFileName;
	
	public String getUploadFileName() {
		return uploadFileName;
	}

	public void setUploadFileName(String uploadFileName) {
		this.uploadFileName = uploadFileName;
	}

	public String getUploadContentType() {
		return uploadContentType;
	}

	public void setUploadContentType(String uploadContentType) {
		this.uploadContentType = uploadContentType;
	}

	public File getUpload() {
		return upload;
	}

	public void setUpload(File upload) {
		this.upload = upload;
	}
if(upload != null)
		{
			
			// 将图片上传到服务器上.  
            // 获得上传图片的服务器端路径
			//FileItem
			
			String path = ServletActionContext.getServletContext().getRealPath(  
                    "/images/hospital");  
			
            // 创建文件类型对象:  
            File diskFile = new File(path + "//" + uploadFileName);  
            // 文件上传:  
            FileUtils.copyFile(upload, diskFile);  
      	
            yiyuan.setPicture("images/hospital/" + uploadFileName);
			
			
			
		}

<tr>
						<td>医院照片</td>
						<td><input type="file" name="upload" /></td>
					</tr>
<form id="hospitaForm" action="${pageContext.request.contextPath }/hospital_saveOrUpdate.action" method="post" enctype="multipart/form-data">



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值