java web开发,上传图片并读取

java web开发,上传图片并读取,第1张

java web开发中,使用文件 *** 作类来上传图片并读取,如下代码:

 * @desc: 图片处理工具

 * @author: bingye

 * @createTime: 2015-3-17 下午04:25:32

 * @version: v1.0

 */

public class ImageUtil {

 

    /**

    * 将图片写到客户端

    * @author: bingye

    * @createTime: 2015-3-17 下午04:36:04

    * @history:

    * @param image

    * @param response void

    */

    public static void writeImage(byte[] image,HttpServletResponse response){

        if(image==null){

            return

        }

        byte[] buffer=new byte[1024]

        InputStream is=null

        OutputStream os=null

        try {

            is=new ByteArrayInputStream(image)

            os=response.getOutputStream()

            while(is.read(buffer)!=-1){

                os.write(buffer)

                os.flush()

            }

        } catch (IOException e) {

            e.printStackTrace()

        } finally{

            try {

                if(is!=null){is.close()}

                if(os!=null){os.close()}

            } catch (IOException e) {

                e.printStackTrace()

            }

        }

    }

     

    /**

    * 获取指定路劲图片

    * @author: bingye

    * @createTime: 2015-3-21 上午10:50:44

    * @param filePath

    * @param response void

    */

    public static void writeImage(String filePath,HttpServletResponse response){

        File imageFile=new File(filePath) 

        if(imageFile!=null && imageFile.exists()){

            byte[] buffer=new byte[1024]

            InputStream is=null

            OutputStream os=null

            try {

                is=new FileInputStream(imageFile)

                os=response.getOutputStream()

                while(is.read(buffer)!=-1){

                    os.write(buffer)

                    os.flush()

                }

            } catch (FileNotFoundException e) {

                e.printStackTrace()

            } catch (IOException e) {

                e.printStackTrace()

            } finally{

                try {

                    if(is!=null){is.close()}

                    if(os!=null){os.close()}

                } catch (IOException e) {

                    e.printStackTrace()

                }

            }

        }

    }

     

    /**

    * 图片上传到文件夹

    * @author: bingye

    * @createTime: 2015-3-20 下午08:07:25

    * @param file

    * @param savePath

    * @return boolean

    */

    public static ResultDto uploadToLocal(CommonsMultipartFile file,String savePath){

        if(file!=null && !file.isEmpty()){

            //获取文件名称

            String fileName=file.getOriginalFilename()

            //获取后缀名

            String suffixName=fileName.substring(fileName.indexOf(".")+1)

            //新名称

            String newFileName=System.currentTimeMillis()+"."+suffixName

            //新文件路劲

            String filePath=savePath+newFileName

            //获取存储文件路径

            File fileDir=new File(savePath)

            if(!fileDir.exists()){

                //如果文件夹没有:新建

                fileDir.mkdirs()

            }

            FileOutputStream fos=null

            try {

                fos=new FileOutputStream(filePath)

                fos.write(file.getBytes())

                fos.flush()

                return ResultUtil.success("UPLOAD_SUCCESS", URLEncoder.encode(newFileName,"utf-8"))

            } catch (Exception e) {

                e.printStackTrace()

                return ResultUtil.fail("UPLOAD_ERROR")

            } finally{

                try {

                    if(fos!=null){

                        fos.close()

                    }

                } catch (IOException e) {

                    e.printStackTrace()

                    return ResultUtil.fail("UPLOAD_ERROR")

                }

            }

        }

        return ResultUtil.fail("UPLOAD_ERROR")

    }

     

     

     

}

用jspSmartUpload组件来实现,用jsp+servlet在Servlet里实现的代码:

PrintWriter out = response.getWriter()

int count = 0

// 实例化上传控件对象

SmartUpload su = new SmartUpload()

// 初始化 *** 作

su.initialize(config, request, response)

// 设置上传文件最大字节数

su.setTotalMaxFileSize(100000)

//

try {

//禁止上传指定扩展名的文件

su.setDeniedFilesList("ext,bat,jsp")

} catch (SQLException e1) {

e1.printStackTrace()

}

try {

// 上传文件到服务器

su.upload()

File fileup = new File(request.getRealPath("upload"))

if(!fileup.exists()){

// 创建目录

fileup.mkdir()

}

// 处理多个文件的上传

for(int i = 0i <su.getFiles().getCount()i++){

com.jspsmart.upload.File file = su.getFiles().getFile(i)

if(!file.isMissing()){ // 如果文件有效

// 保存文件到指定上传目录

file.saveAs("/upload/new."+file.getFileExt(), su.SAVE_VIRTUAL)

count = su.save("/upload")

}

}

} catch (SmartUploadException e) {

e.printStackTrace()

}

out.println(count +"file(s) uploaded")

如果你对这个上传组件不了解,最好是先去查查用法。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11933637.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存