(三)上传后显示:
1,上传后用js从上传控件获取数据显示,用于时时看效果不必保存图片后再从磁盘拿
<label>上传图片:</label> <span><input type="file"
style="width: 240px; border: none;" accept=".jpg,.gif,.png,.bmp"
name="picture" value="${vo.picture_address}"
onchange="previewImage(this,'preview','imghead')" /></span> <br>//页面上控件拿
<div id="preview">
<img id="imghead"
src="${pageContext.request.contextPath}${vo.picture_address}"
alt="" style="cursor: pointer; width: 100%;" />//磁盘拿
</div>
function previewImage(file, preview, imghead) {
var MAXWIDTH = 260;
var MAXHEIGHT = 180;
var div = document.getElementById(preview);
if (file.files && file.files[0]) {
div.innerHTML = "<img id='"+imghead+"'>";
var img = document.getElementById(imghead);
img.onload = function() {
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT,
img.offsetWidth, img.offsetHeight);
img.width = rect.width;
img.height = rect.height;
// img.style.marginLeft = rect.left+'px';
img.style.marginTop = rect.top + 'px';
}
var reader = new FileReader();
reader.onload = function(evt) {
img.src = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
} else //兼容IE
{
var sFilter = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
file.select();
var src = document.selection.createRange().text;
div.innerHTML = "<img id='"+imghead+"'>";
var img = document.getElementById(imghead);
img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth,
img.offsetHeight);
status = ('rect:' + rect.top + ',' + rect.left + ',' + rect.width
+ ',' + rect.height);
div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;"+sFilter+src+"\'></div>";
}
}
function clacImgZoomParam(maxWidth, maxHeight, width, height) {
var param = {
top : 0,
left : 0,
width : width,
height : height
};
if (width > maxWidth || height > maxHeight) {
rateWidth = width / maxWidth;
rateHeight = height / maxHeight;
if (rateWidth > rateHeight) {
param.width = maxWidth;
param.height = Math.round(height / rateWidth);
} else {
param.width = Math.round(width / rateHeight);
param.height = maxHeight;
}
}
param.left = Math.round((maxWidth - param.width) / 2);
param.top = Math.round((maxHeight - param.height) / 2);
return param;
}
2,上传后从后台显示,需要保存后再从磁盘拿
@RequestMapping(value = "/system/tbBasBed/showImage")
public void showReportImage(@RequestParam(value = "imageType") String imageType,
@RequestParam(value = "id") String id,
HttpServletRequest request,HttpServletResponse response) throws IOException, NumberFormatException, EsteelException {
// response.setContentType("image/jpeg");
response.setCharacterEncoding("UTF-8");
// String filePath= WebConfig.get("filePath");
String path = WebConfig.get("filePath") ;
File file=null;
TbBasBed currbasBed = new TbBasBed();
currbasBed.setWare_key(id);
currbasBed= tbBasBedService.getBasBedById(Integer.valueOf(id+""));
if(currbasBed!=null){
if("bas".equals(imageType)&&currbasBed.getPicture_address()!=null){
file=new File(path+currbasBed.getPicture_address());
}
}
if( file==null||!file.exists()){
response.getWriter().print("未找到图片");
}else {
response.setContentType("image/jpeg");
FileInputStream fos = new FileInputStream(file);
byte[] bytes = new byte[1024*1024];
int length = 0;
while((length=fos.read(bytes))!=-1){
response.getOutputStream().write(bytes,0,length);
}
}
}
相关推荐
针对上述问题,我们可以采取以下两种主要的解决策略: ##### 第一种方法:修改配置文件 1. **定位config.json文件**:首先,找到项目的config.json文件。该文件包含了Ueditor的基本配置信息。 2. **调整...
在Qt框架中,进行HTTP POST请求来上传图片到服务器主要有两种常见的方式:Base64编码流和直接上传文件。这两种方法各有优缺点,适用于不同的场景。下面将详细讲解这两种方式的实现过程及其特点。 首先,我们来看...
标题 "jquery文件上传例子(两种方式)" 涉及到的是使用jQuery库进行文件上传的实践,这在Web开发中是非常常见的需求。jQuery是JavaScript的一个轻量级库,它简化了DOM操作、事件处理和Ajax交互等任务。在这个示例中,...
**实时显示** 是通过Ajax的异步特性实现的,服务器处理图片上传后,返回一个确认消息,JavaScript接收到消息后更新页面,显示上传成功的提示或新图片。 **图片大小设置** 可能涉及到两部分:前端预览和后端处理。...
在ASP(Active Server Pages)开发中,图片上传是常见的功能之一,主要分为两种方式:将图片保存到服务器的文件夹中和将图片数据存储到数据库中。这两种方法各有优缺点,下面将详细介绍这两种方法及其实施步骤。 ##...
- 在控制器中,需要创建两个Action方法,一个用于处理视图操作,另一个专门用于处理文件上传。 - 在模型中,创建一个Entity类用于表示数据库表中的记录,并定义必要的数据访问方法。 - 可能包含一个将DataTable转换...
为了实现图片的立即显示,有两种常见方法: 1. **Base64编码**:将图片转换为Base64字符串,然后在HTML中直接作为`data:` URL加载。这种方式适用于小尺寸图片,因为Base64编码会使文件大小增加约33%。 ```html ...
2. **切换工作模式**:FTP有两种工作模式,主动模式和被动模式。通常,被动模式更适合防火墙或NAT环境。你可以使用`passiveMode()`方法切换到被动模式。 3. **选择上传文件**:使用`changeWorkingDirectory()`方法...
5. **实现进度服务端接口**:在Servlet中添加两个新方法,一个用于启动上传(记录开始时间、文件大小等),另一个用于查询进度(计算已上传的字节数与总字节数的比例)。 ```java // 启动上传 public void ...
在网页开发中,文件上传是一项常见的功能,而jQuery与Prototype作为两种流行的JavaScript库,提供了方便的API来实现这一功能。本篇文章将详细讲解如何利用jQuery和Prototype实现文件上传,并在页面上实时显示进度条...
本资源提供的是三种不同的文件批量上传方法,其中包括单文件上传和多文件上传,并且都带有进度条功能,这对于提升用户体验至关重要。下面将详细阐述这些知识点。 1. **单文件上传**: 单文件上传是基本的文件上传...
本篇文章将详细探讨两种实现文件上传的方法:普通HTML控件和服务器控件。 首先,我们来了解一下**普通HTML控件**的方式。这种方式通常涉及到HTML的`<input type="file">`元素。在HTML页面中,你可以创建一个这样的...
这是一个用Flash上传,并可以显示上传进度过程的好东东,服务器接收只做了asp和php两种,如果你是用其它脚本语言的可以自己行写,这个东东最大好处就是可以同时上传多个文件并显示上传进度,不用花心思写一大堆显示进度的...
本文将深入探讨两种常用的无刷新上传插件:`uploadFile`和`Uploadify`,并结合AJAX上传图片的实例`FileUpload`来详细解析其工作原理和实现方式。 首先,我们来看`uploadFile`插件。`uploadFile`是一个基于jQuery的...
结合这两种技术,我们可以构建一个用户友好的图片上传系统,该系统允许用户上传图片,并在服务器上存储后立即显示。 首先,我们需要创建一个Servlet来接收和处理文件上传请求。在Servlet中,我们可以使用Java的`...
本篇文章将详细探讨标题中提到的两种不同的进度条:长形进度条和圆形进度条,并结合描述中的对话框演示效果进行讲解。 首先,我们来看长形进度条,也称为条形进度条。这种进度条是最常见的一种形式,通常表现为水平...
在网页设计中,提供文件上传功能是常见的需求,而为了提升用户体验,显示上传进度条是一项重要的优化措施。本文将深入探讨如何使用AJAX技术来实现这一功能。 首先,我们需要了解AJAX(Asynchronous JavaScript and ...
在IT行业中,PHP和Flash是两个重要的技术领域,它们经常被用来处理大文件上传和显示上传进度的问题。这里,我们将详细探讨如何利用PHP和Flash来实现这个功能。 首先,PHP作为服务器端脚本语言,主要负责接收、处理...
以上两种方法都是 ASP.NET 中处理图片上传和显示的常见方式。第一种适合于对图片管理要求不高的场景,而第二种则更适用于需要跨服务器或对图片数据安全性有较高要求的应用。在实际开发中,根据项目需求和性能考虑,...
本文将介绍两种主要的图片压缩方法,并讨论如何实现图片压缩上传功能。 首先,我们来看**压缩图片质量**。在iOS中,我们可以使用`UIImageJPEGRepresentation`方法来实现JPEG格式图片的质量压缩。该方法接受一个...