上传、下载

<!-- 表单内容 -->
	<form action="${pageContext.request.contextPath }/AddFoodServlet" method="post" enctype="multipart/form-data">
		<!-- 本段标题(分段标题) -->
		<div class="ItemBlock_Title">
        	<img width="4" height="7" border="0" src="${pageContext.request.contextPath }/detail/style/images/item_point.gif"> 菜品信息 
        </div>
		<!-- 本段表单字段 -->
        <div class="ItemBlockBorder">
            <div class="ItemBlock">
				<div class="ItemBlock2">
					<table cellpadding="0" cellspacing="0" class="mainForm">
                    <tr>
						<td width="80px">菜系</td>
						<td>
                            <select name="cid" style="width:80px">
	                            <c:forEach var="db" items="${requestScope.tableList.date }">
	                            	<option value="${pageScope.db.TYPEID }" >${pageScope.db.TYPENAME }</option>
	                            </c:forEach>
                            </select>
                             *<input type="hidden" name="id" value="" />
                           </td>
						</tr>
						<tr>
							<td width="80px">菜名</td>
							<td><input type="text" name="foodName" class="InputStyle" value=""/> *</td>
						</tr>
						<tr>
							<td>价格</td>
							<td><input type="text" name="price" class="InputStyle" value=""/> *</td>
						</tr>
						
						<tr>
							<td>简介</td>
							<td><textarea name="introduce" class="TextareaStyle"></textarea></td>
						</tr>
						<tr>
							<td width="80px">菜品图片</td>
							<td>
								<input type="file" name="imageUrl"/> *
							</td>
						</tr>
					</table>
				</div>
            </div>
        </div>
		<!-- 表单操作 -->
		<div id="InputDetailBar">
			<input type="submit" value="添加" class="FunctionButtonInput">
            <a href="javascript:history.go(-1);" class="FunctionButton">返回</a>
        </div>
	</form>

上传
public class AddFoodServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddFoodServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    Mydesk my=new Mydesk();
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    
	    //写入数据乱码问题解决方案
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        //菜系种类id
        String foodId=null;
        //菜名
        String foodName=null;
        //价格
        String price=null;
        //说明
        String introduce=null;
        //图片路径
        String priture="E:/myImage/";
        String spath="/";
        //接收文件
        boolean isMultipart=ServletFileUpload.isMultipartContent(request);
        //判断是否是文件上传请求
        if(isMultipart){
            //用于创建解析文件上传工厂类
            DiskFileItemFactory factor=new DiskFileItemFactory();
            //默认上传文件  暂时存放在临时目录  System.getProperty("java.io.tmpdir");
            //也有可能是tomcat/temp目录
            //用于从请求中解析出文件
            ServletFileUpload upload= new ServletFileUpload(factor);
            //解决中文乱码问题
            upload.setHeaderEncoding("UTF-8");
            try {
                //解析出文件的个数
                List<FileItem> itmes=upload.parseRequest(request);
                for(FileItem fi:itmes){
                    //表示输入的文本框
                    if(fi.isFormField()){
                        //getName方法用于获得文件上传字段中的文件名      再转编码格式
                        String value=fi.getString("UTF-8");
                        if("cid".equals(fi.getFieldName())){
                            foodId=value;
                        }
                        if("foodName".equals(fi.getFieldName())){
                            foodName=value;
                        }
                        if("price".equals(fi.getFieldName())){
                            price=value;
                        }
                        if("introduce".equals(fi.getFieldName())){
                            introduce=value;
                        }
                        if("priture".equals(fi.getFieldName())){
                            priture=value;
                        }
                    }else{
                        //获取文件名
                        String fileName=fi.getName();
                        if(fileName==null || "".equals(fileName)){
                            break;
                        }
                        //获取输入流
                        InputStream is=fi.getInputStream();
                        //上传的文件路径
                        String destPath=priture+"/"+fileName;
                        System.out.println(destPath);
                        spath+=fileName;
                        //创建输出流
                        FileOutputStream fis=new FileOutputStream(destPath);
                        byte[] bt=new byte[1024];
                        int i;
                        while((i=is.read(bt))!=-1){
                            fis.write(bt, 0, i);
                        }
                        fis.close();
                        is.close();
                    }
                }
                my.AddFood(foodId,foodName,price,spath,introduce);
                request.getRequestDispatcher("/ShowFoodManager").forward(request, response);
                System.out.println(itmes.size());
            } catch (Exception e) {
                request.getRequestDispatcher("/ShowFoodManager").forward(request, response);
            }
        }
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request, response);
	}
}



package cn.et.servlet.lesson04;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyShareDownload extends HttpServlet {
	static String SAVE_DIR="E://Myfile";
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		
		//读取目录下的资源
		File file=new File(SAVE_DIR);
		File[] files=file.listFiles();
		for(File tfile:files){
		    //给每个资源添加一个超链接 显示在页面上
			out.println("<a href='DownloadServlet?fileName="+tfile.getName()+"'>"+tfile.getName()+"<a/><br/>");
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	
	}
}






下载
public class DownloadServlet extends HttpServlet {
	static String SAVE_DIR="E:/Myfile";
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=UTF-8");
		//下载文件的输出流
		OutputStream os=response.getOutputStream();
		String fileName="aa.jpg";
		if(request.getParameter("fileName")!=null){
			fileName=request.getParameter("fileName");
		}
		//告诉浏览器下载的文件名
		response.setHeader("Location", URLEncoder.encode(fileName,"UTF-8"));
		response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8"));
	
		//将文件流写入OutputStream
		FileInputStream fis=new FileInputStream(SAVE_DIR+"/"+fileName);
		byte[] bt=new byte[1024];
		int i=-1;
		while((i=fis.read(bt))!=-1){
			os.write(bt,0,i);
		}
		fis.close();
		os.close();
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}
}






如果图片需要展示到页面
创建一个Service
	import java.awt.image.BufferedImage;
	import java.io.File;
	import java.io.IOException;

	import javax.imageio.ImageIO;
	import javax.servlet.ServletException;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;

	/**
	 * Servlet implementation class ImageController
	 */
	public class ImageController extends HttpServlet {
		private static final long serialVersionUID = 1L;
		   
		/**
		 * @see HttpServlet#HttpServlet()
		 */
		public ImageController() {
			super();
			// TODO Auto-generated constructor stub
		}

		/**
		 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
		 */
		public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			try{
				String imageName=request.getParameter("imageName");
				String absPath="E:/myImage/"+imageName;
				BufferedImage bi=ImageIO.read(new File(absPath));
				ImageIO.write(bi,"png", response.getOutputStream());
			}catch(Exception e){
				
			}
		}

		/**
		 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
		 */
		public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			// TODO Auto-generated method stub
			doGet(request, response);
		}
	}


jsp页面  带上图片的相对路径跳转到上面的Service
<img width="214px" height="145px" src="${pageContext.request.contextPath}/ImageController?imageName=${pageScope.db.PICTURE }" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值