java上传录音文件代码
时间: 2024-05-04 21:20:20 浏览: 88
以下是一个简单的 Java 上传录音文件的示例代码,其中使用了 Apache 的文件上传组件:
```java
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 检查是否是 multipart/form-data 表单
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "上传表单不正确");
return;
}
// 创建文件上传工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓存目录
File tempDir = new File(System.getProperty("java.io.tmpdir"));
factory.setRepository(tempDir);
// 创建文件上传处理器
ServletFileUpload upload = new ServletFileUpload(factory);
try {
// 解析文件上传请求
FileItem fileItem = upload.parseRequest(request).get(0);
// 获取文件名
String fileName = fileItem.getName();
// 保存文件到服务器
File uploadedFile = new File("/path/to/upload/directory", fileName);
FileUtils.writeByteArrayToFile(uploadedFile, fileItem.get());
// 返回成功响应
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("文件上传成功!");
} catch (Exception e) {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "上传文件失败:" + e.getMessage());
}
}
}
```
在上面的代码中,我们使用了 Apache 的 Commons IO 和 Commons FileUpload 组件来处理文件上传。在 `doPost` 方法中,我们首先检查请求是否是一个 multipart/form-data 表单,然后创建一个文件上传工厂,并设置缓存目录。接着,我们创建一个文件上传处理器,并解析文件上传请求。最后,我们获取文件名,保存文件到服务器,并返回成功响应。
阅读全文