`
y806839048
  • 浏览: 1120491 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

图片写到页面上,还是写到浏览器上都是文件--》流--》字节转化方法

 
阅读更多

 

图片写到页面上,还是写到浏览器上都是文件--》流--》字节转化方法

 

文件--》流--》字节,后面发展用工具类包装了部分,至于后缀名,格式的限制就直接判断

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.zip

    在移动互联网领域,微信作为一款超级App,拥有庞大的用户基数,但其内置的浏览器对于某些特定功能,如大文件下载、复杂交互等支持有限。因此,开发者常常需要将用户引导到设备的默认浏览器来完成这些操作,比如下载...

    图片转base64保存到数据库 , 并回显到浏览器

    在IT行业中,将图片转换为Base64编码并存储到数据库是一种常见的做法,尤其是在Web开发中。这种方法可以避免处理图片的上传、存储和路径管理问题,简化系统架构。以下是关于这个主题的详细知识: 1. **Base64编码**...

    图片直接保存到数据库,并在JSP页面显示

    使用`FileInputStream`读取图片文件,将其转化为字节数组,这一步是将图片内容转换为可存储的数据格式。 2. 数据库存储:图片数据可以存储在关系型数据库(如MySQL)的BLOB(Binary Large Object)类型字段中。使用...

    java 编写文件上传类简单易用

    标签中添加以下代码可以页面上显示一个选择文件的控件。 &lt;input type="file" name="file01"&gt; 在页面中显示如下(可能随浏览器不同而不同) 可以直接在文本框中输入文件名,也可以点击按钮后弹出供用户...

    browser-md5-file-1.0.0.zip

    它们都提供了计算文件MD5的方法,但在实际使用中,通常会选择min.js版本以减少页面加载时间。 3. 使用方法: 要使用browser-md5-file,首先需要在HTML文件中引入对应的JavaScript文件,然后通过JavaScript调用其...

    Thymeleaf显示base64字符串为图片.docx

    这段后台代码中,我们首先获取到图片的字节数组`imgbyte`,然后使用`BASE64Encoder`将其转换为Base64字符串`str64`。`ModelAndView`对象用于在前后端之间传递数据,我们设置了视图名称为`showimg`,并添加了一个名为...

    塞班S40手机浏览器UC浏览器8.0 jar程序java源代码

    在塞班S40系统中,Java应用程序通常被打包成JAR(Java Archive)文件,这些文件包含了编译后的字节码,可以在Java虚拟机(JVM)上运行。在提供的文件列表中,如be.class.txt、p.class.txt等,这些都是经过编译的Java...

    JavaScript+Java实现HTML页面转为PDF文件保存的方法_.docx

    JavaScript 和 Java 结合实现 HTML 页面转化为 PDF 文件保存的方法主要涉及前端和后端两个部分。首先,在前端,我们利用 JavaScript 的库 html2canvas 和 jsPDF 来处理 HTML 页面并生成 PDF。 1. **html2canvas**:...

    dwrupload文件上传

    总的来说,“dwrupload”项目展示了如何利用DWR3.0实现异步文件和图片上传,以及如何将文件内容转化为字节流进行处理,这在现代Web应用中是非常实用的技术。开发者可以通过学习和实践该项目,提升自己在文件上传和...

    Base64.js-master js上传文件插件源码,有需要的小伙伴可以下载

    6. **使用场景**:Base64.js-master可能适用于需要在浏览器端进行文件预览、小文件即时传输(如图片、音频片段)或在不支持FormData的环境下上传文件的应用。例如,在线表单、社交媒体上传图片、轻量级文件分享平台...

    jsp教程.pdf

    - **4.2 使用字节流读写文件** - **4.2.1 FileInputStream和FileOutputStream类**:用于读取和写入二进制数据。 - **4.2.2 BufferedInputStream和BufferedOutputStream类**:提供了缓冲机制,提高读写效率。 - **...

    ASP.NET如何存取SQL Server数据库图片

    在ASP.NET页面上显示图片,可以通过将从数据库中检索出的字节数组转化为Base64编码的字符串,然后在HTML元素中使用`src`属性加载该字符串,或者直接将字节数组写入响应流,使浏览器能够识别并显示图片。 综上所述,...

    struts2+poi实现导出Excel文件

    Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...

    ASP 生成静态网页(UTF-8)

    2. **编码转换**:确保所有动态数据在输出到HTML之前都转化为UTF-8编码。这可以通过设置Response对象的CharSet属性来实现,例如`Response.Charset = "UTF-8"`。 3. **HTML模板构建**:创建HTML模板,将动态数据插入...

    图片base64编码互换源码

    在处理图片时,由于图片本质上是二进制数据,因此可以使用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源文件,用于网页交互和动态效果...

    jsp显示数据库图片

    4. **图片存储流程**:首先,用户上传图片到服务器,Servlet接收到文件后,将其转换为字节数组,然后将这些字节存储到MySQL的BLOB字段中。 5. **图片显示流程**:当需要显示图片时,JSP页面发送一个HTTP请求到对应...

Global site tag (gtag.js) - Google Analytics