图片写到页面上,还是写到浏览器上都是文件--》流--》字节转化方法
文件--》流--》字节,后面发展用工具类包装了部分,至于后缀名,格式的限制就直接判断
ByteArrayInputStream extends InputStream
ByteArrayOutputStream extends OutputStream
FileOutputStream extends OutputStream
FileInputStream extends InputStream
file <-->InputStream<-->bytes[]//正向用方法,逆向用构造函数
Stream 放在别人的reader之后变成buffere toString
BufferedImage bufferedImage = ImageIO.read(input);
流--》字节变化方法(2种)
Stream 自身的reader之后变成byte[],Stream变成ByteArrayInputStream后直接有toByteArray方法
destFile = new File(root,fileFileName);
// os = new FileOutputStream(destFile);
// byte[] buffer = new byte[10240];
// int length=0;
// while((length=is.read(buffer))>0){
// os.write(buffer, 0, length);
// }
原始 文件--》流--》字节:
@RequestMapping(value = "/account/tbCusFirmChg/uploadSave")
public String uploadSave(@RequestParam Map<String,Object> upMap,@RequestParam(value="file") MultipartFile file,Model model, HttpSession session, HttpServletRequest request,HttpServletResponse response) throws EsteelException {
String filePath=StaticVariables.Base_Path;
String url="";
File destFile=null;
InputStream is=null;
OutputStream os=null;
OutputStream os1=null;
String fileFileName=file.getOriginalFilename();
is= file.getInputStream();
String path=new SimpleDateFormat("yyyyMMdd").format(new Date());
String root =filePath+"/"+path;
File f = new File(root);
if(!f.exists()){
f.mkdirs();
}
String extendName="";
if(!"".equals(fileFileName)){
extendName= file.getOriginalFilename().substring(file.getOriginalFilename().indexOf(".")+1);
extendName=extendName.toUpperCase();
}
if(",BMP,JPG,GIF,".indexOf(","+extendName+",")>0){
lo = file.getSize();
if(lo>StaticVariables.maxSize_PicFile){
String sc="<script language=javascript>alert('上传的文件夹大小为"+file.getSize()/1024L+"K,超过大小限制 "+StaticVariables.maxSize_PicFile/1024L+"K! ');history.back(); </script>";
ResponseUtil.print(sc, response);
return null;
}
}
String newFileName = new SimpleDateFormat("HHmmss").format(new Date())+getRandStr("",6);
fileFileName=newFileName+"."+extendName;
destFile = new File(root,fileFileName);
os = new FileOutputStream(destFile);
byte[] buffer = new byte[10240];
int length=0;
while((length=is.read(buffer))>0){
os.write(buffer, 0, length);
}
}
@RequestMapping(value = "/account/tbCusFirmChg/showImage")
public void showReportImage(@RequestParam(value = "path") String path,
HttpServletRequest request,HttpServletResponse response) throws IOException, NumberFormatException, EsteelException {
// response.setContentType("image/jpeg");
response.setCharacterEncoding("UTF-8");
// String filePath= WebConfig.get("filePath");
String pathBase = StaticVariables.Base_Path;
File file=null;
if(path!=null&&!"".equals(path)){
file=new File(pathBase+path);
}
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);
}
}
}
后面发展用工具类包装了部分:
/*存储文件返回格式tfsFileName*/
public static String uploadMethod6(MultipartFile picture)
throws IOException {
String tfsFileName = "";
String fileName="";
if (!picture.isEmpty()) {
/*String path = request.getSession().getServletContext().getRealPath("/") + File.separator + "upload"
+ File.separator + indentity;*/
fileName = picture.getOriginalFilename();
tfsFileName = TFSUtil.saveTfsByteFile(picture.getBytes(), fileName);
/*pathnew = File.separator + "upload" + File.separator + indentity + File.separator + fileName;
System.out.println(fileName);
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
picture.transferTo(targetFile);*/
}
return tfsFileName;
}
/*存储文件后返回在TFS中存储的文件码*/
public static String saveTfsByteFile(byte[] fileBytes, String fileName) {
TfsManager tfsManager = getTfSManager();
String fileExt = getFileExt(fileName);
String tfsfileName = tfsManager.saveFile(fileBytes, null, fileExt, true);
return tfsfileName;
}
相关推荐
因此,"将二维码直接转化为流输出到页面上"是一种优化策略,旨在减少资源消耗,提高服务效率。 这个方法的核心在于不将二维码作为图片文件存储,而是直接生成二维码的二进制流,并将其发送到客户端进行解析和显示。...
在移动互联网领域,微信作为一款超级App,拥有庞大的用户基数,但其内置的浏览器对于某些特定功能,如大文件下载、复杂交互等支持有限。因此,开发者常常需要将用户引导到设备的默认浏览器来完成这些操作,比如下载...
在IT行业中,将图片转换为Base64编码并存储到数据库是一种常见的做法,尤其是在Web开发中。这种方法可以避免处理图片的上传、存储和路径管理问题,简化系统架构。以下是关于这个主题的详细知识: 1. **Base64编码**...
使用`FileInputStream`读取图片文件,将其转化为字节数组,这一步是将图片内容转换为可存储的数据格式。 2. 数据库存储:图片数据可以存储在关系型数据库(如MySQL)的BLOB(Binary Large Object)类型字段中。使用...
标签中添加以下代码可以页面上显示一个选择文件的控件。 <input type="file" name="file01"> 在页面中显示如下(可能随浏览器不同而不同) 可以直接在文本框中输入文件名,也可以点击按钮后弹出供用户...
它们都提供了计算文件MD5的方法,但在实际使用中,通常会选择min.js版本以减少页面加载时间。 3. 使用方法: 要使用browser-md5-file,首先需要在HTML文件中引入对应的JavaScript文件,然后通过JavaScript调用其...
这段后台代码中,我们首先获取到图片的字节数组`imgbyte`,然后使用`BASE64Encoder`将其转换为Base64字符串`str64`。`ModelAndView`对象用于在前后端之间传递数据,我们设置了视图名称为`showimg`,并添加了一个名为...
在塞班S40系统中,Java应用程序通常被打包成JAR(Java Archive)文件,这些文件包含了编译后的字节码,可以在Java虚拟机(JVM)上运行。在提供的文件列表中,如be.class.txt、p.class.txt等,这些都是经过编译的Java...
JavaScript 和 Java 结合实现 HTML 页面转化为 PDF 文件保存的方法主要涉及前端和后端两个部分。首先,在前端,我们利用 JavaScript 的库 html2canvas 和 jsPDF 来处理 HTML 页面并生成 PDF。 1. **html2canvas**:...
总的来说,“dwrupload”项目展示了如何利用DWR3.0实现异步文件和图片上传,以及如何将文件内容转化为字节流进行处理,这在现代Web应用中是非常实用的技术。开发者可以通过学习和实践该项目,提升自己在文件上传和...
6. **使用场景**:Base64.js-master可能适用于需要在浏览器端进行文件预览、小文件即时传输(如图片、音频片段)或在不支持FormData的环境下上传文件的应用。例如,在线表单、社交媒体上传图片、轻量级文件分享平台...
- **4.2 使用字节流读写文件** - **4.2.1 FileInputStream和FileOutputStream类**:用于读取和写入二进制数据。 - **4.2.2 BufferedInputStream和BufferedOutputStream类**:提供了缓冲机制,提高读写效率。 - **...
在ASP.NET页面上显示图片,可以通过将从数据库中检索出的字节数组转化为Base64编码的字符串,然后在HTML元素中使用`src`属性加载该字符串,或者直接将字节数组写入响应流,使浏览器能够识别并显示图片。 综上所述,...
Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...
2. **编码转换**:确保所有动态数据在输出到HTML之前都转化为UTF-8编码。这可以通过设置Response对象的CharSet属性来实现,例如`Response.Charset = "UTF-8"`。 3. **HTML模板构建**:创建HTML模板,将动态数据插入...
在处理图片时,由于图片本质上是二进制数据,因此可以使用Base64编码来将其转化为文本形式,方便在网络上传输或者嵌入到HTML、CSS或JavaScript中。本主题涉及的知识点主要包括Base64编码原理、如何进行图片的Base64...
1. **文件上传**:文件上传是指将本地计算机上的文件通过网络发送到服务器的过程。在传统的HTTP请求中,文件上传通常会导致页面刷新,用户体验不佳。然而,随着Ajax和Web 2.0技术的发展,异步文件上传成为可能。 2....
14. **.java** - Java源代码文件,需要通过Java编译器转化为字节码文件才能运行。 15. **.jfif, .jif, .jpeg, .jpg** - JPEG图像文件,广泛用于网络图片。 16. **.js** - JavaScript源文件,用于网页交互和动态效果...
4. **图片存储流程**:首先,用户上传图片到服务器,Servlet接收到文件后,将其转换为字节数组,然后将这些字节存储到MySQL的BLOB字段中。 5. **图片显示流程**:当需要显示图片时,JSP页面发送一个HTTP请求到对应...