1.js进行图片预览
使用input标签来选择图片,使用FileReader读取图片并转成base64编码,然后发送给服务器。
<html>
<body>
<img id="image" src="" />
<br/>
<input type="file" onchange="selectImage(this);"/>
<br/>
<input type="button" onclick="uploadImage();" value="提交"/>
<script>
var image = '';
function selectImage(file){
if(!file.files || !file.files[0]){
return;
}
var reader = new FileReader();
reader.onload = function(evt){
document.getElementById('image').src = evt.target.result;
image = evt.target.result;
}
reader.readAsDataURL(file.files[0]);
}
function uploadImage(){
$.ajax({
type:'POST',
url: 'ajax/uploadimage',
data: {image: image},
async: false,
dataType: 'json',
success: function(data){
if(data.success){
alert('上传成功');
}else{
alert('上传失败');
}
},
error: function(err){
alert('网络故障');
}
});
}
</script>
<script src="jquery-1.11.1.min.js"></script>
</body>
</html>
2.服务器接收数据,然后写到磁盘
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import sun.misc.BASE64Decoder;
/**
* 上传图片。
*/
public class UploadImageAjax extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
String image = req.getParameter("image");
// 只允许jpg
String header = "data:image/jpeg;base64,";
if(image.indexOf(header) != 0){
resp.getWriter().print(wrapJSON(false));
return;
}
// 去掉头部
image = image.substring(header.length());
// 写入磁盘
boolean success = false;
BASE64Decoder decoder = new BASE64Decoder();
try{
byte[] decodedBytes = decoder.decodeBuffer(image);
String imgFilePath = "D://uploadimage.jpg";
FileOutputStream out = new FileOutputStream(imgFilePath);
out.write(decodedBytes);
out.close();
success = true;
}catch(Exception e){
success = false;
e.printStackTrace();
}
resp.getWriter().print(wrapJSON(success));
}
private String wrapJSON(boolean success){
return "{\"success\":" + success + "}";
}
}
3.配置文件web.xml
<web-app>
<servlet>
<servlet-name>UploadImage</servlet-name>
<servlet-class>UploadImageAjax</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadImage</servlet-name>
<url-pattern>/ajax/uploadimage</url-pattern>
</servlet-mapping>
</web-app>
4.需要注意的地方
需要jquery的支持:jquery-1.11.1.min.js
需要servlet的支持:servlet-api.jar
需要Base64解码支持:sun.misc.BASE64Decoder。引入这个包eclipse可能会报错,请按照
http://blog.csdn.net/hurryjiang/article/details/6958146进行处理。
分享到:
相关推荐
在探讨“JavaScript读取本地文件”的主题时,我们主要聚焦于如何利用JavaScript在浏览器环境中读取用户计算机上的本地文件。这种功能在很多场景下都极为有用,比如在上传文件前预览其内容、数据导入导出操作等。下面...
在IT领域,图片上传本地预览插件是一个常见的功能组件,尤其在网页应用和桌面软件中,它极大地提升了用户体验。这个插件的核心作用是让用户在实际上传图片到服务器之前,能够在本地环境中预览图片效果,确保图片的...
在这个场景中,jQuery被用来处理用户选择的图片文件,通过JavaScript读取文件内容并显示为预览图像。这通常涉及到HTML5的File API,该API允许在浏览器中访问和操作本地文件,而不依赖服务器。 要实现图片预览,...
整个工程"test.jsp"的实现将这些部分结合在一起,为用户提供了一个友好的本地图片上传预览功能。在这个过程中,我们利用了HTML5的特性,如文件API和data URL,以及jQuery的便利性,实现了前后端的协同工作。这个项目...
在本文中,我们将深入探讨如何使用jQuery实现本地图片上传预览功能,这是一项常见的Web开发需求,尤其是在构建交互式用户界面时。jQuery是一款强大的JavaScript库,它简化了DOM操作、事件处理、动画制作以及Ajax交互...
在本文中,我们将深入探讨如何使用JavaScript(JS)与ASP.NET技术实现图片上传、预览以及支持多文件上传和上传前预览的功能。这个技术组合是现代Web应用中常见的需求,尤其是在用户交互丰富的网站和应用中。 首先,...
在JavaScript开发中,图片上传预览效果是一种常见的需求,它允许用户在正式上传图片之前查看其效果,确保图片质量和方向正确。本知识点将围绕“js图片上传预览效果”这一主题,结合提供的文件名列表,深入讲解实现这...
在JavaScript中实现图片上传并预览功能是一项常见的前端任务,主要涉及到HTML5的...以上是实现“js图片上传并预览图片”的主要技术点和步骤,理解并掌握这些知识点,可以构建出稳定且用户体验良好的图片上传预览功能。
在介绍如何使用JavaScript(简称JS)读取CSV文件并使用JSON格式进行展示之前,我们先来了解几个基础概念。 CSV文件是逗号分隔值(Comma-Separated Values)文件的简称,是一种简单的文件格式,用于存储表格数据,...
本项目涉及的主要知识点是图片裁剪、预览以及上传至服务器,并且支持二次裁剪预览上传。这一过程通常涵盖前端和后端两个主要部分,分别由JavaScript和Java语言来实现。以下是关于这个主题的详细解释。 一、图片裁剪...
这个功能允许用户在选择本地图片后立即在页面上看到预览效果,无需等待图片实际上传到服务器。实现这个功能涉及到几个关键的技术点: 1. **HTML5 File API**:现代浏览器提供了File API,使得我们可以在JavaScript...
借助File API,我们可以让用户选择本地图片,并在不离开浏览器的情况下进行处理。`<input type="file">`元素是实现这一功能的基础,它允许用户选择本地文件。例如: ```html *" id="imageSelector"> ``` 当用户...
同时,使用JavaScript或者框架如jQuery、Vue.js等进行事件监听和文件预览,可以通过FileReader API读取文件内容并显示为预览图。为了限制图片的像素、大小和张数,可以在选择文件后立即进行检查,如果不符合设定的...
在本项目中,"Jquery 表单验证+本地图片上传-切割-预览"是一个综合性的前端开发实例,它涵盖了几个重要的JavaScript库和技术,包括jQuery、表单验证、图片上传、图片切割以及预览功能。以下是这些知识点的详细解释:...
在.NET开发环境中,图片上传预览功能是常见的需求,它允许用户在上传图片到服务器之前进行查看和确认,提升用户体验。下面将详细讲解如何实现这一功能。 首先,我们需要理解图片预览的基本原理。图片预览通常涉及到...
2. 在app.js中,编写JavaScript代码来处理文件选择和读取: ```javascript document.getElementById('fileInput').addEventListener('change', function(e) { var file = e.target.files[0]; if (file.type.match...
"Java Web使用pdf.js在线预览远程服务器上的pdf文件"这个主题涵盖了如何利用pdf.js库实现在Web环境中流畅、安全地预览PDF文档。pdf.js是Mozilla开发的一个开源项目,它允许开发者在浏览器端直接渲染PDF内容,无需...
【标题】"支持批量上传、JS图片预览的前端上传组件"所涉及的知识点主要集中在前端开发领域,尤其是文件上传和用户体验优化上。这个组件设计用于处理用户在Web应用中上传多个文件的需求,同时提供了图片预览功能,...
在现代Web应用中,"上传图片本地预览效果"是一个常见的功能,特别是在社交媒体、电子商务、图像编辑等场景中。这个功能允许用户在选择图片后,无需等待上传完成就能在页面上即时预览所选的图片,提升了用户体验。...