commons-fileupload上傳檔案(圖片)時路徑寫入資料庫時斜槓的問題
前端:常規的二進位制form表單,這裡不贅述了。
後端:常規的Java servlet處理資料。其關鍵的程式碼如下:
這樣寫的話,在伺服器端可以看到最終圖片的上傳路徑為:String _today = new SimpleDateFormat("yyyyMMdd") .format(new java.util.Date()); // 儲存的最終檔案路徑(伺服器端),其中realwebbase是通過request.getSession().getServletContext().getRealPath("/");方法獲取的伺服器路徑。 String u_name = realwebbase + "upload/letterPic/" + _today + "/" + MyUtil.getUUID() + "." + t_ext; try { // --------------------5------------------儲存檔案----------------------------- File _today_file = new File(realwebbase + "upload/letterPic/" + _today); // 構建檔案目錄 if (!_today_file.exists()) { _today_file.mkdirs(); } fileItem.write(new File(u_name)); hm.put("letter_pic", u_name);//hm是一個作為返回值的HashMap物件 hm.put("msg", "success"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }
圖片路徑::D:\javasoft\apache-tomcat-6.0.10\webapps\xinyu\upload/letterPic/20170428/e3460fe5-8f81-4fb6-8eba-ae33cbeaa27a.jpg
看到那方向不一致的斜槓,心想:壞了!!果然,開啟資料看資料的時候發現右斜槓並沒有作為一個字元寫進去(也許寫入資料庫的時候右斜槓被視為一個轉義符號了)。反而寫入的是這麼一串東西:---可以發現右斜槓其實已經完全被過濾了。
【為什麼會出現這種情況?如何避免?】
這種情況的出現,是因為寫入資料庫的時候相應處理程序把右斜槓“\”當做轉義符了——這樣就導致讀取檔案路徑的時候無法找到正確的檔案。
網路上的以“\\”代替“\”的方法行不通!這樣做獲得的一串沒有斜槓的字串;
網路上的以“#6”編碼代替“\”的方法也行不通!這樣做獲得的也是一串沒有斜槓的字串;
正確的解決方法:
1、可以通過替換字元,將轉義符換成左斜槓;
2、字串擷取,建立檔案/儲存檔案的時候使用絕對路徑,寫入資料庫的時候用相對路徑;
相關推薦
commons-fileupload上傳檔案(圖片)時路徑寫入資料庫時斜槓的問題
前端:常規的二進位制form表單,這裡不贅述了。 後端:常規的Java servlet處理資料。其關鍵的程式碼如下: String _today = new SimpleDateFormat("yyyyMMdd") .format(new java.util.Date
SpringMVC上傳檔案(圖片)並儲存到本地
SpringMVC上傳檔案(圖片)並儲存到本地 小記一波~ 基本的MVC配置就不展示了,這裡給出核心程式碼 在spring-mvc的配置檔案中寫入如下配置 <bean id="multipartResolver" class="org.springframewor
一鍵jquery非同步上傳檔案(圖片)的實現(檔案上傳進度讀取未做)
本文采用boostrap、、jquery、jade(html的一種模板)、nodejs實現 最終實現的效果:一個按鈕在選擇完檔案後,自動上傳到後臺; -改變input樣式 在form表單中,用<a>包裹<input type="file">,讓i
springmvc上傳檔案(圖片)
環境:springmvc+spring+mybatis 前提環境,需要把ssm框架搭建好,如果沒有搭建的話可以先搭建這個框架 然後需要新增jar包 pom裡面新增 <!-- 上傳元件 --> <!-- https://mvnre
js上傳檔案(圖片)限制格式及大小為3M · 觀止
如果你想快速解決這個問題,看本文就夠了。查了好多資料,終於解決了,太耗時間了,本文留給給後來者,希望你們工作的更輕鬆 本文儲存為.html檔案用瀏覽器開啟即可測試功能 <form id="fo
js上傳檔案(圖片)限制格式及大小
如果你想快速解決這個問題,看本文就夠了。查了好多資料,終於解決了,太耗時間了,本文留給給後來者,希望你們工作的更輕鬆 本文儲存為.html檔案用瀏覽器開啟即可測試功能 <form id="form1" name="form1" method="post" actio
阿里雲 javascript上傳檔案(圖片、視訊、壓縮包等檔案)到 物件儲存 OSS ,返回上傳檔案、圖片、音訊、視訊等URL路徑
目的:前端上傳檔案(圖片、視訊、音訊等)到阿里雲伺服器裡面,並且獲得上傳檔案的URL路徑 前提:首先要買一個阿里雲伺服器,自己百度不會; 第一步:登入阿里雲賬號,點選管理控制檯-->物件儲存 OSS 第二步:新建儲存空間(圖一、圖二) (圖一) (圖二
iOS使用表單流上傳檔案(圖片/文字/...)
#define HTTP_CONTENT_BOUNDARY @"----WebKitFormBoundarywpMAGHPPMfSNBkkK----" + (BOOL)httpPutDataWithUploadDate:(NSString *)uplo
jsp form表單提交獲取返回資料(也可用來上傳檔案、圖片)
function fileImport() { var form = $("#表單id"); var options = { url:"表單提交地址", type:'post
Spring MVC 4 使用常規的fileupload上傳檔案(帶原始碼)
package com.websystique.springmvc.controller; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; impor
springboot/springmvc上傳檔案(CommonsMultipartResolver)
上一篇博文講到了(Servlet3.0支援)的檔案上傳:https://blog.csdn.net/frozenpower/article/details/81141297 這篇我們來看可配置的檔案上傳解析器CommonsMultipartResolver CommonsMultipartR
SpringBoot結合commons-fileupload上傳檔案
首先pom檔案引入相關依賴: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifac
使用表單上傳檔案(二)
先寫一個簡單的表單,根據上一篇文章說的步驟進行 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCT
使用form表單上傳檔案(一)
今天在專案中要寫一個上傳檔案的功能,使用jsp中的form表單的形式完成。 首先新建一個jsp,使用最原始的form表單來完成。 jsp中的程式碼如下,很簡單: <form method="post" action="<%=ermDomainUrl %>
H5標籤input標籤上傳檔案(一)
之前專案做檔案上傳(本篇著重講純圖片上傳)的時候,一般都是用的flash外掛。 H5的input標籤提供了type=file的檔案上傳功能,那麼如何用這個標籤實現前後端之間的檔案上傳呢。 百度了一下,一個能用的都沒有,都有BUG,講的也很複雜,好氣喔,自己寫
百度上傳外掛(webupload)單檔案(單圖片)上傳設定
var uploader = WebUploader.create({ //auto : true, swf : '${ctx}/stat
用MVC實現簡單的檔案(圖片)上傳下載功能
一 實現效果簡單說明 上傳:上傳圖片,將圖片儲存到伺服器,並將相關資訊寫入資料庫。 下載:在頁面展示圖片下載列表的縮圖,點選圖片將其載入到本地。 二.View Index中程式碼 <h2>圖片上傳區</h2> <hr/> &l
Retrofit 檔案(圖片)和引數同時上傳的方法
參考如下方式 @Multipart @POST(NRConfig.UPDATE_FILES) Call<Result<UpdateFilesEntity>> updateOneFile(@PartMap Map<String,RequestBo
利用開源元件commons-fileupload上傳圖片檔案(2)
上一篇文章講解了比較基礎的檔案上傳,並沒有將相關資料寫入資料庫。在實際開發專案中,我們有時候為了來描述我們上傳的圖片,我們會在上傳圖片的同時,上傳一些與圖片相關的屬性,這時就涉及到後臺怎樣分別獲取圖片檔案和普通的字串變數。上傳檔案使用Common-FileUpload這個開
java ajax非同步上傳檔案(文件、圖片都可以)
在寫專案的時候,經常用到圖片上傳啊什麼的,這兒提供一個方法,萬能,咋都能用。 ajax $(".save-head").click(function () { var formData = new FormData();