package com.itcast.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.upload.FormFile;
public class SaveUploadFile {
/**
*
* @param formFile 上传的文件
* @param request
* @param productTypeName 类别名称
* @param productName 产品名称
* @param savefileName 保存的文件名
* @param ext 上传文件的扩展名
* @throws Exception
*/
public static void saveProductPic(FormFile formFile,
HttpServletRequest request, Integer productTypeId,
Integer productID, String savefileName, String ext)
throws Exception {
if (formFile != null && formFile.getFileSize() > 0) {
// 1:保存原大小尺寸的图片
String pathdir = "/image/product/" + productTypeId + "/"
+ productID + "/prototype";// 构建图片保存的目录
// 得到图片保存目录的真实路径
String realpathdir = request.getSession().getServletContext()
.getRealPath(pathdir);
// 创建文件目录
File savedir = new File(realpathdir);
// 如果目录不存在就创建
if (!savedir.exists()) {
savedir.mkdirs();
}
File imageFile = new File(savedir, savefileName);
FileOutputStream fops = new FileOutputStream(imageFile);
// 将上传的文件信息保存到相应的文件目录里
fops.write(formFile.getFileData());
fops.close();
// 2:保存原压缩尺寸的图片
String path140 = "/image/product/" + productTypeId + "/"
+ productID + "/140x";// 构建图片保存的目录
// 得到图片保存目录的真实路径
String realpath140 = request.getSession().getServletContext()
.getRealPath(path140);
// 创建文件目录
File savedir140 = new File(realpath140);
// 如果目录不存在就创建
if (!savedir140.exists()) {
savedir140.mkdirs();
}
File imageFile140 = new File(savedir140, savefileName);
ImageSizer.resize(imageFile, imageFile140, 140, ext);
}
}
/**
*
* @param formFile 上传的品牌图片文件
* @param request
* @param saveName 保存的文件的名字
* @param ext 保存的文件的扩展名
* @return
* @throws FileNotFoundException
* @throws IOException
*/
public static String saveBrandPic(FormFile formFile, HttpServletRequest request,
String saveName, String ext) throws FileNotFoundException,
IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH");
String savepath = "/image/brand/" + sdf.format(new Date());//构建图片保存的目录
//得到图片保存目录的真实路径
String realsavepath = request.getSession().getServletContext()
.getRealPath(savepath);
//创建文件目录
File logosavedir = new File(realsavepath);
//如果目录不存在就创建
if (!logosavedir.exists()) {
logosavedir.mkdirs();
}
FileOutputStream fops = new FileOutputStream(new File(realsavepath,
saveName));
fops.write(formFile.getFileData());
fops.close();
return savepath;
}
}
分享到:
相关推荐
这个"javaweb文件上传与下载模块源代码"提供了一个实现这些功能的基础框架,对于初学者和Java程序员来说,这是一个很好的学习资源。下面将详细讲解其中涉及的关键知识点。 1. **Servlet和HTTP协议**: - 在Java ...
这个"文件上传及文本框内容不丢失java源代码"的主题聚焦于如何在JSP和Servlet环境中实现这一功能,同时确保文本框输入的数据在文件上传过程中不会丢失。下面将详细解释相关知识点。 1. **表单类型**: - 在HTML...
要下载文件,使用`openDownloadStream`方法获取一个`GridFSDownloadStream`,然后将其转换为`InputStream`,最后可以写入到文件: ```java GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream...
在Spring框架中,实现文件的上传与下载是常见的需求,特别是在Web应用中。...通过深入研究这个源代码,开发者可以学习到如何在Spring MVC环境中实现完整的文件上传下载流程,并能应用于实际项目中。
4. **文件处理**:上传文件后,你需要指定一个服务器目录来保存这些文件。这涉及到文件路径的处理,以及可能的权限检查。 5. **错误处理**:考虑到可能出现的异常,如文件过大、文件类型不合法等,需要有相应的错误...
在Upload.java文件中,可以看到具体的业务逻辑,包括接收上传请求,保存文件到服务器,以及响应文件下载请求,将文件内容发送回客户端。 4. **安全性和性能优化**: 在实际应用中,文件上传下载不仅需要考虑功能...
4. **临时存储**:在服务器端接收上传文件时,通常先将文件保存到临时目录,如`java.io.File#createTempFile()`方法创建的临时文件。 5. **文件移动**:在确认文件无误后,可将其移动到服务器上的永久位置,使用`...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建企业级的Java Web应用程序。在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个...
Struts2是一个非常流行的Java Web框架,用于构建企业级应用。它的强大之处在于提供了一种模型-视图-控制器(MVC)架构,使得开发者能够更有效地管理应用程序的业务逻辑、用户界面和数据流。在Struts2中,文件上传和...
SmartUpload会将文件保存到指定的临时目录或特定路径,开发者可以通过API获取文件信息,如文件名、类型、大小等,以便进行进一步的操作,如移动到目标位置、存储数据库记录等。 3. **文件下载实现** 文件下载通常...
3. **文件保存**:接收到文件后,你需要将其保存到服务器的某个位置。这涉及文件路径的管理、文件命名规则以及错误处理,例如检查目标目录是否存在,避免文件覆盖等。 4. **文件下载**:文件下载通常通过HTTP的GET...
一旦Servlet获取到上传的文件流,它会创建一个新的文件对象,然后使用`FileOutputStream`将文件流写入到服务器指定的目录。 在上传完成后,可能会有错误处理和日志记录,确保上传过程的可靠性。此外,安全性也是一...
学习这个案例,你可以了解到如何设计和实现一个基本的文件上传系统,包括客户端如何发起连接、发送文件,以及服务器端如何接收并保存文件。通过对源代码的分析和实践,你可以深入理解Socket编程和IO流在实际网络通信...
在本"基于Struts的文件上传下载源代码"中,我们可以深入理解Struts如何处理文件上传和下载操作,这对于初学者来说是一个非常实用的学习资源。 首先,文件上传在Web应用中是常见的功能,它允许用户从本地计算机选择...
标题中的“上传下载源代码”指的是提供了一套用于实现文件上传和下载功能的源代码,通常这涉及到Web应用开发中的一个重要部分。在Web应用中,用户可能需要上传图片、文档等,或者从服务器下载资源。这里提到的"ssh...
Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java...
Action类通常负责业务逻辑,包括验证上传文件的大小、保存上传文件到服务器、处理下载请求等。Struts配置文件定义了Action的映射和拦截器配置。JSP页面则负责展示用户界面,提供文件选择和提交按钮。 6. **安全考虑...
通过查看这些文件,我们可以深入理解每个部分的实现细节,比如如何将上传的文件保存到服务器、如何生成下载链接、如何处理可能出现的异常等。 总的来说,这个项目提供了一个学习JSP文件上传下载功能的好机会,涵盖...
Java IO流可以创建一个`OutputStream`,通过这个流将服务器上文件的内容写入到响应对象的输出流中。同时,需要设置响应头,如`Content-Disposition`来指示浏览器以附件形式下载文件,以及`Content-Type`来指定文件的...
具体到这个“带进度条的文件上传源代码”,它利用AJAX和DWR实现了一个动态更新的进度条,用户选择文件后,前端会立即显示一个进度条,展示文件上传的百分比。这个过程是通过监听HTTP请求的进度事件完成的,当服务器...