网站首页 > 文章中心 > 其它

上传图片的代码JAVA

作者:小编 更新时间:2023-08-28 15:20:45 浏览量:37人看过

java怎样上传图片(写个例子谢谢);

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

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

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

/**

*

* 上传图片

上传图片的代码JAVA-图1

* @param servlet

* @param request

* @param response

* @return

* @throws Exception

上传图片的代码JAVA-图2

*/

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

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

SimpleDate()Format formatDate() = new SimpleDate()Format("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();

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()){ //没有选择图片做提示!

}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_sizefile_size_max){

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

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

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对象

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_wold_h){

tempdouble=old_w/tagsize;

tempdouble=old_h/tagsize;

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

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

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;

returnflag = 0;

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

response.sendRedirect();

return "11";

app怎么上传图片到java后台?java后台处理的具体代码是怎么写的?

求JAVA上传图片代码

public String imagesUpload(){

log.debug("images upload");

if(files == null){

saveMessage("没有上传任何文件!");

return ERROR;

// 查看上传临时目录是否存在

String sep = File.separator;

String condPath = sep + "upload" + sep +"tmp" +sep;

String uploadDir = ServletActionContext.getServletContext().getRealPath(condPath) + sep;

File dirPath = new File(uploadDir);

if (!dirPath.exists())

dirPath.mkdirs();

String extension, fileName;

int count = 0;

StringBuilder picNameSB = new StringBuilder("");

ListString picNamesSet = new ArrayListString();

for(File tempFile : files){

if(count0)

picNameSB.append("##");

extension = UserUtil.getFileExtension(filesFileName[count]);

fileName = generatePictureName(uploadDir, doType + count, extension);

File newFile = new File(fileName);

UserUtil.copyFileContent(tempFile,newFile);

picNamesSet.add(newFile.getName());

picNameSB.append(newFile.getName());

count++ ;

getSession().setAttribute("picNamesSet",picNamesSet);

picName = picNameSB.toString();

}catch(IOException e){

e.printStackTrace();

int x= 1;

return SUCCESS;

private String generatePictureName(final String dir, final String suffix, final String fileExtension){

StringBuffer name = new StringBuffer(dir);

String tmpFileName = String.valueOf(System.currentTimeMillis());

if(suffix != null)

tmpFileName += suffix;

tmpFileName += "." + fileExtension;

name.append(tmpFileName);

return name.toString();

java实现图片上传至服务器并显示,如何做?希望要具体的代码实现

很简单.

可以手写IO读写(有点麻烦).

怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException{

PrintWriter out=response.getWriter();

//设置保存上传文件的目录

String uploadDir =getServletContext().getRealPath("/up");

System.out.println(uploadDir);

if (uploadDir == null)

out.println("无法访问存储目录!");

return;

//根据路径创建一个文件

上传图片的代码JAVA-图3

File fUploadDir = new File(uploadDir);

if(!fUploadDir.exists()){

if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出...

out.println("无法创建存储目录!");

if (!DiskFileUpload.isMultipartContent(request))

out.println("只能处理multipart/form-data类型的数据!");

return ;

DiskFileUpload fu = new DiskFileUpload();

//超过1M的字段数据采用临时文件缓存

//采用默认的临时文件存储位置

//fu.setRepositoryPath(...);

//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码

//得到所有表单字段对象的集合

List fileItems = null;

try

fileItems = fu.parseRequest(request);//解析request对象中上传的文件

catch (FileUploadException e)

out.println("解析数据时出现如下问题:");

e.printStackTrace(out);

//处理每个表单字段

Iterator i = fileItems.iterator();

while (i.hasNext())

FileItem fi = (FileItem) i.next();

if (fi.isFormField()){

String fieldName = fi.getFieldName();

request.setAttribute(fieldName,content);

String pathSrc = fi.getName();

if(pathSrc.trim().equals("")){

continue;

int start = pathSrc.lastIndexOf('\\');

String fileName = pathSrc.substring(start + 1);

File pathDest = new File(uploadDir, fileName);

fi.write(pathDest);

request.setAttribute(fieldName, fileName);

}catch (Exception e){

out.println("存储文件时出现如下问题:");

finally //总是立即删除保存表单字段内容的临时文件

fi.delete();

注意 JSP页面的form要加enctype="multipart/form-data" 属性, 提交的时候要向服务器说明一下 此页面包含文件.

如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握.

-----------------------------

以上回答,如有不明白可以联系我.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章