jsp上传文件,并插入数据库中。下面URL是上传文件的完整路径,请问大家,这个URL怎样插入数据库?读取是怎样读取的?谢谢
C:\Program Files\Tomcat 5.5\webapps\TestProject\uploads\e85dec9dc
f634ee0bb3330ae6597d469.txt

解决方案 »

  1.   

    上传是要用第三方组件的,推荐commons-fileupload。看看我们的文档
    www.family168.com/tutorial/jsp/html
      

  2.   

    需要jar包用Struts的可以当然找的common-pool,dbcp,fileupload,Common-beans
    这三个包就行了
      

  3.   

    需要第三方jar包,我用过smartupload,还可以。
      

  4.   

    如果只是文本,你可以用IO流读取下,再写到数据库。这样不必要那么麻烦了!~
    如果是上传,文件管理有是一个问题嘛。如果是其他格式的,那就在数据库设计的时候设成二进制类型,再执行上传操作、网上好多关于上传的例码,你也可以去参考下。百度、google一艘,好多
      

  5.   

    public class FileUpload {
    /**
     * 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);

    }}
    仅供参考
      

  6.   

    我的资源里有份 java 上传源代码。楼主可以去看看。