jsp上传文件,并插入数据库中。下面URL是上传文件的完整路径,请问大家,这个URL怎样插入数据库?读取是怎样读取的?谢谢
C:\Program Files\Tomcat 5.5\webapps\TestProject\uploads\e85dec9dc
f634ee0bb3330ae6597d469.txt
C:\Program Files\Tomcat 5.5\webapps\TestProject\uploads\e85dec9dc
f634ee0bb3330ae6597d469.txt
www.family168.com/tutorial/jsp/html
这三个包就行了
如果是上传,文件管理有是一个问题嘛。如果是其他格式的,那就在数据库设计的时候设成二进制类型,再执行上传操作、网上好多关于上传的例码,你也可以去参考下。百度、google一艘,好多
/**
* Logger for this class
*/
private static final Log logger = LogFactory.getLog(FileUpload.class);
/**
*
*/
public static void removeFile(String storedFilePath) {
File file = new File(storedFilePath);
file.delete();
}//ԭ4�ϴ��ļ�����
public static FileItem saveFile(FormFile formFile,String webPath) throws Exception{
return saveFile(formFile,webPath,null);
}
public static FileItem saveFile(FormFile formFile,String webPath,String absolutePath) throws Exception{
FileItem fileItem = new FileItem();
StringBuffer storedPath = new StringBuffer();
String contentType = formFile.getContentType();
logger.debug(contentType);
String size = (formFile.getFileSize() + " bytes");
if (formFile.getFileSize() < (4*1024000)) {
if(webPath==null) {
webPath ="/";
}
if(absolutePath != null) {
storedPath.append(absolutePath);
} else {
storedPath.append((System.getProperty("user.dir")).replace('\\','/' ));
}
Random rm = new Random();
int i = rm.nextInt(1000);
webPath = webPath + i + "/";
storedPath.append(webPath);
File file = new File(storedPath.toString());
file.mkdirs();
String storedFileName = formFile.getFileName();
logger.debug("filename "+storedFileName) ;
// logger.debug(URLDecoder.decode(storedFileName, "UnicodeBig"));
// String[] s = getStoredFileName(formFile.getFileName());
// fileItem.setName(s[0]+s[1]);
// String storedFileName = s[0]+i+s[1];
// fileItem.setEncodePath(storedPath.toString()+storedFileName);
// fileItem.setEncodePath(storedPath.toString()+URLDecoder.decode(storedFileName, "GBK"));
// fileItem.setEncodePath(storedPath.toString()+URLEncoder.encode(storedFileName, "UTF-8"));
storedPath.append(storedFileName );
fileItem.setStoredPath(storedPath.toString());
fileItem.setWebPath(webPath+storedFileName );
logger.debug("StoredPath is : "+fileItem.getStoredPath());
logger.debug("WebPath is : "+fileItem.getWebPath());
// logger.debug("Name is : "+fileItem.getName());
try {
InputStream stream = formFile.getInputStream();
write(stream,fileItem);
} catch (FileNotFoundException e) {
logger.error("", e);
} catch (IOException ex) {
logger.error("", ex);
}
} else {
String data = new String("The file is greater than 4MB, " +
" and has not been written to stream." +
" File Size: " + size);
logger.error(data);
throw new AppException(102);
}
return fileItem;
}
private static String[] getStoredFileName(String fileName) {
String[] s = new String[2];
if(fileName!=null) {
int j=0;
j = fileName.lastIndexOf("\\");
if(j>=0) {
fileName = fileName.substring(j+1);
}
j = fileName.indexOf(".");
if(j>=0) {
s[1] = fileName.substring(j);
s[0] = fileName.substring(0,j);
} else {
s[1] = "";
s[0] = "";
}
}
return s;
}
private static void write(InputStream stream,FileItem fileItem) throws IOException {
//logger.debug(fileItem.getEncodePath());
File file = new File(fileItem.getStoredPath());
OutputStream bos = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
}
//�µ��ϴ��ļ����� add pengch 20090421
public static FileItem saveFile(FormFile formFile, String[] filePathRuleStrs,IFileNameRule fileNameRule) throws Exception{
ICompositeFilePathRule compositeFilePathRule=new DefaultCompositeFilePathRule();
for(int i=0;i<filePathRuleStrs.length;i++)
compositeFilePathRule.addPathRule(new DefinedFilePathRule(filePathRuleStrs[i]));
return saveFile(formFile,compositeFilePathRule,fileNameRule);
}
public static FileItem saveFile(FormFile formFile, IFilePathRule[] filePathRules,IFileNameRule fileNameRule) throws Exception{
return saveFile(formFile,new DefaultCompositeFilePathRule().addPathRules(filePathRules),fileNameRule);
}
public static FileItem saveFile(FormFile formFile,ICompositeFilePathRule compositeFilePathRule,IFileNameRule fileNameRule) throws Exception{
String directory = compositeFilePathRule.getFilePath();
String fileName = fileNameRule.fileName(StringUtils.getOnlyFileName(formFile.getFileName()));//����()չ��
String fileExtension = StringUtils.getFilenameExtension(formFile.getFileName());
FileItem fileItem = new FileItem();
//���·��
StringBuffer storedPath = new StringBuffer();
//���·��
StringBuffer webPath = new StringBuffer();
String contentType = formFile.getContentType();
logger.debug(contentType);
String size = (formFile.getFileSize() + " bytes");
if (formFile.getFileSize() < (4*1024000)) {
storedPath.append((System.getProperty("user.dir")).replace('\\','/' ));
if(directory.startsWith(StringUtils.PATH_DELIMITER))
storedPath.append(directory);
else
storedPath.append(StringUtils.PATH_DELIMITER).append(directory);
File file = new File(storedPath.toString());
if(!file.exists())
file.mkdirs(); storedPath.append(fileName).append(StringUtils.DOT ).append(fileExtension);
webPath.append(directory).append(fileName).append(StringUtils.DOT ).append(fileExtension);
fileItem.setStoredPath(storedPath.toString());
fileItem.setWebPath(webPath.toString());
fileItem.setName(formFile.getFileName());
fileItem.setEncodePath(contentType);
logger.debug("StoredPath is : "+fileItem.getStoredPath());
logger.debug("WebPath is : "+fileItem.getWebPath());
logger.debug("WebPath is : "+fileItem.getName());
try {
InputStream stream = formFile.getInputStream();
write(stream,fileItem);
} catch (FileNotFoundException e) {
logger.error("", e);
} catch (IOException ex) {
logger.error("", ex);
}
} else {
String data = new String("The file is greater than 4MB, " +
" and has not been written to stream." +
" File Size: " + size);
logger.error(data);
throw new AppException(102);
}
return fileItem;
}
public static void main(String[] args) {
StringBuffer storedPath = new StringBuffer();
storedPath.append((System.getProperty("user.dir")).replace('\\','/' ));
//storedPath.append("/200511/10/001");
System.out.println(storedPath);
}}
仅供参考