jsp页面上传文件(不用框架)

第一步:
在这里插入图片描述
第二步:新建servlet

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html");
		String state="false";
		//指定上传位置
		String uploadFiilePath=request.getSession().getServletContext().getRealPath("upload/");
		String finleString=request.getContextPath()+"/upload/";
		System.out.print(finleString);
		File saveDir = new File(uploadFiilePath); 
		//如果目录不存在,就创建目录  
		if(!saveDir.exists()){  
			saveDir.mkdir();  
		}  
		//判断表单是否设置了上传属性
		boolean isMultipart=ServletFileUpload.isMultipartContent(request);
		if(isMultipart){
			//产生关键对象upload,用来取数据
			FileItemFactory factory=new DiskFileItemFactory(); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
			ServletFileUpload upload=new ServletFileUpload(factory); // 用以上工厂实例化上传组件
			
			try {
				//把request中的数据转换成FileItem的集合
				List<FileItem> items=upload.parseRequest(request);
				Iterator<FileItem> iter= items.iterator();
				BbsDetail bdtl=new BbsDetail();
				while (iter.hasNext()) {
					FileItem item= (FileItem)iter.next();
					if(item.isFormField()){ // 如果是普通表单控件
						String fieldName=item.getFieldName(); // 获得该字段名称
						if(fieldName.equals("title")){ //如果提交name有title属性
							//取出对应的值,把此提交数据保存在对象中,好在数据库保存
							bdtl.setTitle(item.getString("UTF-8"));
						}
						if(fieldName.equals("content")){
							bdtl.setContent(item.getString("UTF-8"));
						}
						if(fieldName.equals("author")){
							bdtl.setAuthor(item.getString("UTF-8"));
						}
					}else{ // 如果为文件域
						String fileName = item.getName();// 获得文件名(全路径)
						if(fileName!=null && !fileName.equals("")){
							File fullFile=new File(fileName);
							File saveFile=new File(uploadFiilePath, fullFile.getName()); //将文件保存到指定的路径
							try {
								item.write(saveFile); //把获取数据保存到电脑文件
							} catch (Exception e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							} 
							String uploadFiileName=fullFile.getName(); //获得文件名称
							bdtl.setPicPath(uploadFiileName);  //保存到对象,调用方法保存到数据库
						}
					}
				}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值