首页编程java编程java上传图片 建立什么 请问用Java 如何实现图片上传功能

java上传图片 建立什么 请问用Java 如何实现图片上传功能

编程之家2023-10-1220次浏览

这篇文章给大家聊聊关于java上传图片 建立什么,以及请问用Java 如何实现图片上传功能 对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

java上传图片 建立什么 请问用Java 如何实现图片上传功能

用java怎么上传图片到项目指定的文件夹

你的意思是拷贝吗,还是上传到服务器什么的

import java.io.*;

/**

java上传图片 建立什么 请问用Java 如何实现图片上传功能

*复制文件夹或文件夹

*/

public class CopyDirectory{

java上传图片 建立什么 请问用Java 如何实现图片上传功能

//源文件夹

static String url1="f:/photos";

//目标文件夹

static String url2="d:/tempPhotos";

public static void main(String args[]) throws IOException{

//创建目标文件夹

(new File(url2)).mkdirs();

//获取源文件夹当前下的文件或目录

File[] file=(new File(url1)).listFiles();

for(int i= 0; i< file.length; i++){

if(file[i].isFile()){

//复制文件

copyFile(file[i],new File(url2+file[i].getName()));

}

if(file[i].isDirectory()){

//复制目录

String sourceDir=url1+File.separator+file[i].getName();

String targetDir=url2+File.separator+file[i].getName();

copyDirectiory(sourceDir, targetDir);

}

}

}

//复制文件

public static void copyFile(File sourceFile,File targetFile)

throws IOException{

//新建文件输入流并对它进行缓冲

FileInputStream input= new FileInputStream(sourceFile);

BufferedInputStream inBuff=new BufferedInputStream(input);

//新建文件输出流并对它进行缓冲

FileOutputStream output= new FileOutputStream(targetFile);

BufferedOutputStream outBuff=new BufferedOutputStream(output);

//缓冲数组

byte[] b= new byte[1024* 5];

int len;

while((len=inBuff.read(b))!=-1){

outBuff.write(b, 0, len);

}

//刷新此缓冲的输出流

outBuff.flush();

//关闭流

inBuff.close();

outBuff.close();

output.close();

input.close();

}

//复制文件夹

public static void copyDirectiory(String sourceDir, String targetDir)

throws IOException{

//新建目标目录

(new File(targetDir)).mkdirs();

//获取源文件夹当前下的文件或目录

File[] file=(new File(sourceDir)).listFiles();

for(int i= 0; i< file.length; i++){

if(file[i].isFile()){

//源文件

File sourceFile=file[i];

//目标文件

File targetFile=new

File(new File(targetDir).getAbsolutePath()

+File.separator+file[i].getName());

copyFile(sourceFile,targetFile);

}

if(file[i].isDirectory()){

//准备复制的源文件夹

String dir1=sourceDir+"/"+ file[i].getName();

//准备复制的目标文件夹

String dir2=targetDir+"/"+ file[i].getName();

copyDirectiory(dir1, dir2);

}

}

}

}

请问用Java 如何实现图片上传功能

我有一段上传图片的代码,并且可以根据实际,按月或按天等,生成存放图片的文件夹

首先在JSP上放一个FILE的标签这些我都不说了,你也一定明白,我直接把处理过程给你发过去

我把其中存到数据库中的内容删除了,你改一下就能用

/**

*

*上传图片

*@param servlet

*@param request

*@param response

*@return

*@throws Exception

*/

//这里我是同步上传的,你随意

public synchronized String importPic(HttpServlet servlet, HttpServletRequest request,HttpServletResponse response) throws Exception{

SimpleDateFormat formatDate= new SimpleDateFormat("yyyyMM");

Date nowtime=new Date();

String formatnowtime=formatDate.format(nowtime);

File root= new File(request.getRealPath("/")+"uploadfile/images/"+formatnowtime+"/");//应保证在根目录中有此目录的存在如果没有,下面则上创建新的文件夹

if(!root.isDirectory())

{

System.out.println("创建新文件夹成功"+formatnowtime);

root.mkdir();

}

int returnflag= 0;

SmartUpload mySmartUpload=new SmartUpload();

int file_size_max=1024000;

String ext="";

String url="uploadfile/images/"+formatnowtime+"/";

//只允许上载此类文件

try{

//初始化

mySmartUpload.initialize(servlet.getServletConfig(),request,response);

mySmartUpload.setAllowedFilesList("jpg,gif,bmp,jpeg,png,JPG");

//上载文件

mySmartUpload.upload();

} catch(Exception e){

response.sendRedirect()//返回页面

}

com.jspsmart.upload.File myFile= mySmartUpload.getFiles().getFile(0);

if(myFile.isMissing()){//没有选择图片做提示!

returnflag= 3;

}else{

String myFileName=myFile.getFileName();//取得上载的文件的文件名

ext= myFile.getFileExt();//取得后缀名

if(ext.equals("jpg")||ext.equals("gif")||ext.equals("bmp")||ext.equals("jpeg")||ext.equals("png")||ext.equals("JPG")){//jpeg,png不能上传!)

int file_size=myFile.getSize();//取得文件的大小

String saveurl="";

if(file_size<file_size_max){

try{

//我上面说到,把操作数据库的代友删除了,这里就应该是判断,你的图片是不是已经存在了,存在要怎么处理,不存在要怎么处了,就是你的事了}

//更改文件名,取得当前上传时间的毫秒数值

Calendar calendar= Calendar.getInstance();

//String filename= String.valueOf(calendar.getTimeInMillis());

String did= contractBean.getMaxSeq("MULTIMEDIA_SEQ");

String filename= did;

String flag="0";

String path= request.getRealPath("/")+url;

String ename= myFile.getFileExt();

//.toLowerCase()转换大小写

saveurl=request.getRealPath("/")+url;

saveurl+=filename+"."+ext;//保存路径

myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);

//将图片信息插入到数据库中

//------上传完成,开始生成缩略图-----

java.io.File file= new java.io.File(saveurl);//读入刚才上传的文件

String newurl=request.getRealPath("/")+url+filename+"_min."+ext;//新的缩略图保存地址

Image src= javax.imageio.ImageIO.read(file);//构造Image对象

float tagsize=200;

int old_w=src.getWidth(null);

int old_h=src.getHeight(null);

int new_w=0;

int new_h=0;

int tempsize;

float tempdouble;

if(old_w>old_h){

tempdouble=old_w/tagsize;

}else{

tempdouble=old_h/tagsize;

}

// new_w=Math.round(old_w/tempdouble);

// new_h=Math.round(old_h/tempdouble);//计算新图长宽

new_w=150;

new_h=110;//计算新图长宽

BufferedImage tag= new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);//绘制缩小后的图

FileOutputStream newimage=new FileOutputStream(newurl);//输出到文件流

JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag);//近JPEG编码

newimage.close();

returnflag= 1;

}else{

returnflag= 0;

System.out.println("('上传文件大小不能超过"+(file_size_max/1000)+"K');");

}

}else{

returnflag= 2;

}

}

response.sendRedirect();

return"11";

}

java web项目中有很多的图片,如何存放

一般有两种情况,

一种是前端开发需要显示的图片,这个是页面构成必须的元素,一般这些会做动静分离,后台接口跟前端资源会部署在不同的服务器上,有不同的优化,一般会有转发的服务器,判断是后台接口,就转发到后台的服务器,如果是前端资源,就转发到前台的服务器。一般情况下,前端服务器,跟后台的服务器,是分离开的,有不同的人去管理,如果项目小的话,可能就全放在一个。这个优化的化,你可以去了解下 CDN原理。这个是用来优化静态资源加载情况的。

另一种情况是,显示的图片,不是前端构成的,是用户上传文件产生的,这种情况下,现在一般有专门的对象存储,用过七牛云,跟阿里的。这个的逻辑是文件上传的时候,不是上传到我们自己的服务器,上传到专门的云服务器,我们自己数据库只需要保存这些上传文件的地址,真正使用的时候,把连接给前端,前端自动会根据内容到专门的云服务器上去获取。所有的安全,优化,带宽,缓存命中,这些都有由云服务器去保证。简单来说,只有有钱,这些东西根本不会成为你项目的瓶颈。

作为技术,我们讨论的应该不是这些。图片会做备份,这个可以有专门的磁盘阵列去实现,简单来说,就是上传的内容保存到磁盘的时候,会自动多保存几个备份到不同的磁盘上。还是那句话,多去了解下CDN的原理,最后这段,个人理解,不一定对。

java项目客户上传的图片放到哪好

图片上传一般考虑两种办法:1、上传到服务器,数据库中存储服务器上图片的相对路径;2、转换为二进制流存入到数据库中。现在常用的做法都是选择第一种,因为第二种太占数据库空间,而且查找读取效率不高。很多开源的文件上传框架(比如spring中的commons-fileupload)都是采用第一种方式。上传图片到服务器不会影响系统的运行速度,你可以选择将图片的目录建立在非系统盘,存储容量比较大的盘,如F盘等。注意图片名字不要重复,建议用uuid

关于java上传图片 建立什么和请问用Java 如何实现图片上传功能 的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

华硕x550v(华硕x550v配置参数)java32位和64位有什么区别,jdk32位和64位有什么区别是什么