日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【.net】Ueditor中图片上传和图片回显路径的设置

發布時間:2024/3/24 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【.net】Ueditor中图片上传和图片回显路径的设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在csdn六百多天的游俠今日現身江湖。

問題發生的背景:
所有項目代碼中,圖片上傳都是固定存到一個圖片專屬的盤符,這樣就可以整個盤符對所有圖片進行備份以防丟失。
但是!有一個站點所引用的百度編輯器(主要用來發送通知)則不然,每次上傳通知,內容中的圖片、文件都傳到了項目路徑下,當我項目重新發布一個版本后,上傳生成的圖片文件夾就沒了…
幸好每次更換項目代碼都會把之前的那個備份一下,然后又得手動把之前的圖片文件夾復制粘貼到新版本的項目代碼中。但總是會忘記的…好幾次同事打開通知都顯示不出歷史圖片后,決心修改Ueditor的上傳和回顯路徑,改到專門保存圖片的盤符下。

1、我的環境

先說一下我的S操作所在的本地環境吧

  • Window10
  • IIS 10.0
  • Visual Studio 2015
  • SQL Server 2014 Management Studio

2、修改需求

在查找解決方案前,我腦海中都會先大致給預設一個修改需求,帶著修改要求去找解決方案,然后在過程中盡量往預設的修改需求靠攏,實在靠攏不了也能合理地改變嘛。

因為在正式環境中代碼和圖片是放在兩個不同盤符的,我本地就按照它上面來。
主要就是要實現,圖片上傳路徑從項目包所在路徑換成圖片保存的另一個盤符。

- 代碼包放在D盤
這個是引入的Ueditor包的路徑,menu是我的項目包名稱

- 圖片路徑設置在F盤
image就是我編輯器要上傳的圖片保存文件夾

- IIS設置個虛擬路徑
在站點下設置虛擬路徑,路徑指向保存圖片的專屬盤符F盤。(應該沒有不會設虛擬路徑的小可愛吧?)
其實路徑也可以在Ueditor的路徑配置文件中,寫死成某一個盤符的路徑,以后修改盤符的時候修改配置文件就行了。(如下SSR君的博客所分享)
但我比較傾向于使用站點下的虛擬目錄,修改虛擬目錄指向的物理路徑就行了,也方便以后其他圖片要上傳到圖片保存專屬盤符,直接使用虛擬目錄img上傳就行。
其實都差不多,自己權衡考慮吧~

3、啃文檔

當然,在啃文檔之前還是先把項目中的Ueditor引用的代碼掃了幾眼的,發現…LZ看不懂啊,果斷乖乖先去搜文檔啃幾口填填肚子。

①源文件

(Ueditor的源文件一定要看,很詳細地寫了PHP、ASP、JSP要怎么配置試用,怎么二次開發,還有一些常見的問題等。)

限定君: 百度編輯器官方文檔

②他人博客

(搜索關鍵詞Ueditor上傳路徑配置、Ueditor自定義上傳地址等等啦,相信各位已經得心應手的)

  • SSR君:https://www.cnblogs.com/mazhiyuan/p/5275964.html
  • SR君: https://www.cnblogs.com/flower1990/p/5773068.html
  • R君:https://blog.csdn.net/u011546347/article/details/79550226
    (玩陰陽師的都懂的,限定就是稀有;SSR君就是對我解決問題幫助最大的;SR君其次,我下載他的demo下來后無法解壓,顯示解文件損壞;R君幫助不是很大,但可以稍微參考一下,因為他里邊是java的栗子…)

4、試錯進行時

在啃了一兩天文檔后,對編輯器的配置和調用了解了個大概,接下來就是動手時刻。

①Ueditor,net目錄內的源碼結構

②嘗試修改UEditor 后端的配置文件config.json


就是這兩個配置項,不管我怎么改【imagePathFormat】,上傳的圖片都是在項目路徑下面蹦跶,要么就是前端的編輯界面崩了。
按照別人的步驟修改也是一樣…

- 圖4-1:圖片無法顯示,上傳還是在項目內
(寫入數據庫的回顯地址沒有該圖片,上面已經說了,我站點的虛擬目錄img指向的是F盤,而圖片上傳都在D盤的項目目錄下,當然無法回顯!)

- 圖4-2:直接連單圖上傳按鈕都灰掉了…
(對【imagePathFormat】寫了一些無法辨認的路徑)

- 圖4-3:文件訪問出錯
(路徑傳給UploadHandler時,在磁盤上找不到所給路徑【localPath】)

- 圖4-4:數據庫傳回來的回顯路徑
這只是一小部分測試歷史,其他的一些最新的不可看內容就不方便放出來了,能用的路徑都嘗試了一遍(笨鳥先飛~)
其實就是config配置文件中【imageUrlPrefix】與【imagePathFormat】的拼接。

諸如此類的問題層出不窮…(扶額扶得發際線越加危險)

③由此可得

不過還是有所收獲的,也就是說:

- 【imagePathFormat】是圖片的上傳路徑
在config配置文件內改什么都是沒用的,都只會上傳到項目路徑下

- 入庫的圖片/路徑圖片回顯地址其實是
【imageUrlPrefix】+【imagePathFormat】的拼接(其實回顯完全可以不寫,反正寫入的回顯地址為上傳地址也沒影響,都是在項目內…在項目外的話肯定是要寫的,不然回顯不了,如上錯誤圖4-1)

- 只能在另外的方法中動刀了,下一節UploadHandler

測試無果后中場休息一天,先做做別的事說不準就有靈感了。

5、UploadHandler文件的修改

(見證奇跡的時刻!暴露年齡的話梗…)
要修改路徑,最重要的方法是UploadHandler!UploadHandler!UploadHandler!說三遍!
在借鑒無果的情況下,還是自己打斷點調式一下吧!

①調試前

先來理一下UploadHandler和config的關系

②調試中

結果讓我一目了然:【savePath】、【localPath】、【Result.Url】這三個地址的數據返回讓我豁然開朗!茅塞頓開!

- 圖5-1:【savePath】的返回地址
地址為【imagePathFormat】傳過來的,目前一切還很正常

- 圖5-2:【localPath】返回的地址請看!
居然多了前面一串項目的路徑(還記得前面吧?我把項目放在了D盤)!難怪啊!!!我在config.json怎么改都沒用啊,你在UploadHandler中給添加了前綴!
為什么如此呢?可去了解一下Server.MapPath這方法的使用:返回與WEB服務器上的指定虛擬路徑相對應的物理文件路徑

- 圖5-3:最后看一下地址【Result.Url】
【Result.Url】的地址=【savePath】獲取的地址=【imagePathFormat】設置的地址

③調試后

是不是豁然開朗!!!由此可見

- 【localPath】為編輯器的圖片上傳地址!
(來來來!給它們做做文章)

6、最后的修改,成果展現

- 圖6-1:修改圖片紅框兩個地方
var localPath = Server.MapPath("/img")+ savePath、“imageUrlPrefix”:“http://localhost:9011/img”,
(就修改這么兩個個地方!!膝蓋微微發軟…)
如果覺得在方法里面修改,后面路徑名要變的話,還要重新發布項目很麻煩,可以參照上面SSR君的博客,在config.json中定義一個參數保存路徑名。
不過其實都差不多,設置了一個img虛擬目錄后,img可以不變的,其他目錄地址是可以隨便變化的。(不過,存放圖片的路徑還是不要輕易大動,牽涉的項目中上傳路徑太多了。)

- 圖6-2:編輯界面
哈哈哈哈哈哈!!上傳成功且成功回顯!

- 圖6-3:保存圖片的F盤中
有圖片!!成功傳到了D盤外的非項目所在盤符。

- 圖6-4:最后查看一下數據庫傳入的回顯HTML中的src
站點:端口/虛擬目錄/虛擬目錄指向的物理路徑(即【imagePathFormat】)
要問怎么把html傳到數據庫的,此內容不在今日所說范圍。

至此上傳和回顯的的路徑修改已完成!還剩下一些數據庫中歷史回顯路徑的批量修改,今晚先加雞腿,nice~

我只負責維護,如果大刀闊斧,那就離重構不遠了…大門在那邊,慢走不送~
溜了溜了~

總結

以上是生活随笔為你收集整理的【.net】Ueditor中图片上传和图片回显路径的设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。