panda

          IT高薪不是夢!!

          統計

          留言簿

          閱讀排行榜

          評論排行榜

          2009年11月8日 #

          文件上傳(FileUpload)

          1.使用JAR
          ??????jsp文件上傳主要使用了兩個jar包,commons-fileupload-1.2.1.jar和commons-io-1.4.jar
          2.代碼實現
          ???? public class UploadServlet extends HttpServlet {

          ?/**
          ? *
          ? */
          ?private static final long serialVersionUID = 1L;

          ?private ServletContext sc;

          ?private String savePath;

          ?@Override
          ?protected void doGet(HttpServletRequest request,
          ???HttpServletResponse response) throws ServletException, IOException {
          ??doPost(request, response);
          ?}

          ?@Override
          ?protected void doPost(HttpServletRequest request,
          ???HttpServletResponse response) throws ServletException, IOException {

          ??System.out.println("請求進來了..........");

          ??// 設置請求的編碼
          ??request.setCharacterEncoding("UTF-8");

          ??DiskFileItemFactory factory = new DiskFileItemFactory();//創建一個磁盤文件工廠
          ??ServletFileUpload upload = new ServletFileUpload(factory);

          ??try {
          ???List items = upload.parseRequest(request);
          ???Iterator it = items.iterator();
          ???while (it.hasNext()) {
          ????FileItem item = (FileItem) it.next();

          ????if (item.isFormField()) {
          ?????System.out.println("表單的參數名稱:" + item.getFieldName()
          ???????+ ",對應的參數值:" + item.getString("UTF-8"));
          ????} else {
          ?????// 獲取文件擴展名
          ?????String strtype = item.getName().substring(
          ???????item.getName().length() - 3,
          ???????item.getName().length());
          ?????strtype = strtype.toLowerCase();

          ?????if (strtype == "jpg" || strtype == "gif"
          ???????|| strtype == "txt") {
          ??????if (item.getName() != null
          ????????&& !item.getName().equals("")) {
          ???????System.out.println("上傳文件的大?。? + item.getSize());
          ???????System.out.println("上傳文件的類型:"
          ?????????+ item.getContentType());
          ???????System.out.println("上傳文件的名稱:" + item.getName());

          ???????System.out.println("文件的擴展名" + strtype);
          ???????File tempFile = new File(item.getName());
          ???????File file = new File(
          ?????????sc.getRealPath("/") + savePath, tempFile
          ???????????.getName());
          ???????item.write(file);

          ???????request.setAttribute("upload.message", "上傳文件成功!");

          ??????} else {
          ???????request.setAttribute("upload.message",
          ?????????"沒有選擇上傳文件獲取格式不支持");
          ??????}
          ?????} else {
          ??????request.setAttribute("upload.message", "上傳文件格式不支持");
          ?????}
          ????}
          ???}
          ??} catch (Exception e) {
          ???e.printStackTrace();
          ???request.setAttribute("upload.message", "上傳文件不成功!");
          ??}
          ??// 轉發
          ??request.getRequestDispatcher("/uploadResult.jsp").forward(request,
          ????response);
          ?}

          ?@Override
          ?public void init(ServletConfig config) throws ServletException {

          ??savePath = config.getInitParameter("savePath");
          ??sc = config.getServletContext();
          ?}

          posted @ 2009-11-08 16:30 IT追求者 閱讀(170) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 武宁县| 高邑县| 喀喇沁旗| 安吉县| 二手房| 仲巴县| 章丘市| 边坝县| 深州市| 成武县| 洛南县| 大厂| 改则县| 阿克苏市| 乐东| 奇台县| 西畴县| 扶绥县| 渑池县| 灵山县| 马山县| 全南县| 峨边| 犍为县| 明水县| 屯门区| 即墨市| 高阳县| 惠州市| 新绛县| 吉木萨尔县| 兰西县| 惠水县| 通榆县| 格尔木市| 赣州市| 建始县| 隆尧县| 廊坊市| 喀喇沁旗| 黄浦区|