不明白为什么它会一直创建2个文件夹?它会创建一个'0‘文件夹以及来自html的任何jobID。我希望上传的文件位于jobID文件夹中,而不是“0”文件夹中。
int userID = 1; // test
String coverLetter = "";
String status = "Review";
int jobID = 0;
String directoryName = "";
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart && request.getContentType() != null)
{
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List /* FileItem */ items = null;
try
{
items = upload.parseRequest(request);
}
catch(FileUploadException e) {}
// Process the uploaded items
Iterator iter = items.iterator();
while(iter.hasNext())
{
FileItem item = (FileItem)iter.next();
if(item.isFormField())
{
if(item.getFieldName().equals("coverLetter"))
coverLetter = item.getString();
if(item.getFieldName().equals("jobID"))
jobID = Integer.parseInt(item.getString());
}
directoryName = request.getRealPath("/") + "/Uploads/CV/" + jobID + "/";
File theDir = new File(directoryName);
if (!theDir.exists())
theDir.mkdir();
if(item.getFieldName().equals("file"))
{
File uploadedFile = new File(directoryName + item.getName());
try
{
item.write(uploadedFile);
}
catch(Exception e) {}
}
}编辑:
问题解决了,我想要上传的文件
这是因为它位于jobID文件夹中,而不是“0”文件夹中。
发布于 2011-03-13 23:34:38
我怀疑这不是真的:
item.getFieldName().equals("jobID")
不过,这有点难以猜测。您是否尝试过在Eclipse (或类似环境)中进行调试?添加一些日志记录可能也会有所帮助。
发布于 2011-03-14 00:13:22
必须从请求中解析出2个项目,所以您可能正在发送2个上传项目。
第一个项目没有jobID FieldName,因此仍保留目录名称
.../Uploads/CV/0所以这就是造成问题的时间。
第二个项目具有作业ID,因此可以正确地创建目录。
你能把这张表寄给我们看看吗,上面可能有什么东西。求职信是不带jobId的附加文件吗?
如果jobID存在,你可以通过创建目录来解决这个问题。
发布于 2011-03-13 23:54:27
尝试在以下行之前打印/记录jobID:
directoryName = request.getRealPath("/") + "/Uploads/CV/" + jobID + "/";
https://stackoverflow.com/questions/5290332
复制相似问题