我在使用表单enctype="multipart/form-data"
时遇到在我的数据库中插入图片的问题。我已经尝试使用Part
类,但只返回图像的名称,而我想要图像的绝对路径。我也试过使用下面的代码
try {
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select, etc).
if(item.getFieldName().equals("txtPrdModel")){
String ProductModel = item.getString();
}
// ... (do your job here)
} else {
// Process form file field (input type="file").
String fieldName = item.getFieldName();
String fileName = FilenameUtils.getName(item.getString());
InputStream fileContent = item.getInputStream();
// ... (do your job here)
}
}
此代码获取fieldName
,但getString
不返回任何值。
我需要使用enctype="multipart/form-data"
并且需要我尝试上传的文件的绝对路径。
我使用的是netbeans 8.0.2,而servlet版本是3.1。
答案 0 :(得分:1)
出于安全原因,文件的绝对路径不会作为文件名的一部分发送。您只能知道上传到服务器的文件的当前名称,因此尝试获取文件在客户端上的绝对路径是徒劳的。
获得文件名及其二进制数据后,请使用此信息将其存储在文件,数据库或您正在使用的其他数据源的特定路径中。