台灣最大程式設計社群網站
線上人數
1138
 
會員總數:243460
討論主題:188180
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 如何在A主機FileUpload 圖片到B主機
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在A主機FileUpload 圖片到B主機
價值 : 90 QP  點閱數:305 回應數:15

樓主

cat
初學者
39 171
3021 368
發送站內信

請問
如何在A主機程式要上傳圖片到B主機 (2台主機在同一網域內 可互通)
必要時還需要開新資料夾放圖片 請問該如何做呢?

我想過先在A主機上傳好再複製到B主機 但還是不知道如何做
還請各位大大幫忙 謝謝


搜尋相關Tags的文章: [ 上傳圖片 不同主機 ] ,
本篇文章發表於2018-09-11 10:02
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
A主機開網路分享給B主機
並且設定兩台帳密相同
然後在B主機的IIS上,設定虛擬目錄,實體路徑就是A主機的分享資料夾

就降子,A主機上傳,B主機立馬可以下載
檔案就存一份在A主機中

^_^
本篇文章回覆於2018-09-11 22:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

cat
檢舉此回應
感謝topcat 大大
是我沒說清楚 抱歉
我是想 在A主機的網頁 使用 FileUpload 程式上傳圖檔 圖檔最後可以存在B主機的另一個站台的資料夾內
謝謝
本篇文章回覆於2018-09-13 12:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我想先確認清楚
A主機上傳的檔案,要存在B主機的資料夾
用意是什麼?
您的目的是什麼

了解您的目的用途,就更能夠回覆符合您需求的解答

請您針對這部分,再說明更清楚些

^_^
本篇文章回覆於2018-09-13 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

cat
檢舉此回應
回topcat大大
因為本來站台是在 http的B主機(包含前端使用者跟後端管理),現在要加個手機版RWD(除了前端撈資料兼修改資料,還會上傳圖片,但無需後台)卻要放在 https 的A主機,才會想到用另一個發問的iframe 來解決
還請topcat 大大和其他先進幫忙解惑,感謝
本篇文章回覆於2018-09-14 08:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

彩虹
檢舉此回應
所以 iframe 那篇文章可以結案了吧,而不是放著不理
還是你認為 https 無法嵌入 http,沒有解決你的問題,所以就當作無解
但這句話「https 無法嵌入 http」就是答案,安全性上就是不行!

另外我覺得你並沒有回答到「A主機上傳的檔案,要存在B主機的資料夾」的用意
好奇圖片為何不能就存在A主機就好
然後B如果要連結圖片 src ,路徑就指定到 A 主機即可
本篇文章回覆於2018-09-14 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

彩虹
檢舉此回應
另外 儘管你能嵌入 iframe B主機網頁,也沒有辦法達到你的需求
iframe嵌入的是獨立網頁框,所以當你form submit 時,A主機網站與B主機網站也不會有任何關聯

不然你就用 API 去做串接吧

本篇文章回覆於2018-09-14 17:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
本來站台是在 http的B主機(包含前端使用者跟後端管理)
現在要加個手機版RWD(除了前端撈資料兼修改資料,還會上傳圖片,但無需後台
卻要放在 https 的A主機


所以,我整理一下,您的需求是否是
B主機上傳的圖片
A主機要能顯示出來

再整理一下
所以B主機上傳的圖片,A主機沒有沒關係,只要能夠直接顯示出來
是這個樣子嗎?

如果A、B主機都是您自己管的
兩台都開啟可以允許https,那麼https的問題就解決了,這只需要在IIS上設定一下就可以

回到這裡問題本身
其實答案還是小喵#1的答案

1.兩台建立一組一模模一樣樣的帳號密碼
2.B主機將上傳圖檔存放的路徑,做成分享磁碟機(例如://ServerB/ImgFiles)
3.A主機透過IIS,新增一個『虛擬目錄』他的實體位置指向B主機分享出來的網路磁碟路徑(例如://ServerB/ImgFiles)
4.A主機IIS中的『應用程式集區(AppPool)』裡面,進皆設定設定識別漲密為剛剛兩台一模一樣的帳密

以上都不用寫程式,都是在檔案總管、IIS上面設定就可以
就可以解決
設定好之後
B主機後台上傳了一個圖檔
B主機的前台看得到,A主機的前台也看得到

您試試看,有問題再提出來
^_^


本篇文章回覆於2018-09-14 18:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

彩虹
檢舉此回應
補一下我在5樓提到的 iframe 文章
這樣比較知道在提哪一個部分

主題:「https 的網站頁面可以 用iframe src 連到http 的頁面嗎」
http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD201809131515466JL.html
本篇文章回覆於2018-09-14 22:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

cat
檢舉此回應
感謝彩虹大跟topcat大的熱心回覆
二位大大說的我也都想過,若只是要顯示,b主機將路徑連到A主機上傳的圖也是沒錯

topcat大問的==>
B主機上傳的圖片,A主機沒有沒關係,只要能夠直接顯示出來

我的情形:有關係 ,同個ID理應是同一張圖,user在A主機上傳的圖,管理者在B主機後端管理應該要取到,而B主機該筆資料本來可能也有圖,我希望A主機上傳的能覆蓋B的,反之亦然,目前想的到的,就是A主機上傳在自身A的資料夾,B主機若取不到自身的圖,就連到A的路徑可這顯示可以,若要改圖就會有問題了
單純顯示我知道沒有問題,主要是在使用者跟管理者都可能上傳覆蓋新的(這才試我要的)
彩虹大說的==>
A主機網站與B主機網站也不會有任何關聯

所以我才想用iframe連過去作業,作完在連回來,兩者之間的確無須有關聯
還有主機不試我管的
感謝二位大大
本篇文章回覆於2018-09-15 10:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
不錯的參考

彩虹
檢舉此回應
兩個網站是吃同一個資料庫嗎~
如果是的話
A上傳圖片就存於A主機,圖片路徑:「//www.A.com.tw/upload/1.php」
B上傳圖片就存於B主機,圖片路徑:「//www.B.com.tw/upload/2.php」
就不用管覆蓋不覆蓋問題
如果覺得照片沒刪除,很佔空間,你可以補寫排程,每天只掃前一天的資料,去資料表查那些照片還沒有移除,移除後更新資料欄位

不然你也可以考慮使用雲端儲存空間來做串接,統一集中管理
1.Amazon S3
2.Google Cloud Storage
3.其他雲端等等
本篇文章回覆於2018-09-15 12:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
我的情形:有關係 ,同個ID理應是同一張圖,user在A主機上傳的圖,管理者在B主機後端管理應該要取到,而B主機該筆資料本來可能也有圖,我希望A主機上傳的能覆蓋B的,反之亦然,目前想的到的,就是A主機上傳在自身A的資料夾,B主機若取不到自身的圖,就連到A的路徑可這顯示可以,若要改圖就會有問題了
單純顯示我知道沒有問題,主要是在使用者跟管理者都可能上傳覆蓋新的(這才試我要的)


您想看看
存兩個地方,無論資料庫是否一致,一定會有『兩邊檔案系統同步維護、檔案是否一致相同』的問題
相反的,如果存放的地方只有一個,兩邊無論那個上傳,存放的實體位置都是一樣的,
那麼,這種要不要同步,哪台上傳要蓋哪一台這類的問題,根本不存在,因為存的實體位置都是一樣的

這就是多方思考(經歷)各種應用後,小喵提出用虛擬路徑,來設定達到存放實體位置是相同的原因
只要兩台主機設定的虛擬目錄是一樣的
A Server:
http://serverA/ImgFiles
B Server:
http://serverB/ImgFiles

而兩台的ImgFiles都是指向相同的實體位置
(不管是\\ServerA\Files\ImgFiles
或者\\ServerB\Files\ImgFiles
或者\\ServerD\Files\ImgFiles
或者\\ServerE\Files\ImgFiles
...
都沒關係
無論是從ServerA上傳到ImgFiles
還是從ServerB上傳到ImgFiles
他存放的實體位置,兩台都一樣
看到的,也都一樣
這樣還有問題嗎?

^.^a
本篇文章回覆於2018-09-16 12:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
承上
而且,假設您本來設定兩台的實體位置都是『\\ServerB\Files\ImgFiles』
但,有一天,您發現實體的位置空間不夠了
另外有一台ServerC空間非常足夠,

那麼把檔案全部轉移到『\\ServerC\Files\ImgFiles』
接著,兩台Server的虛擬目錄,都一起改成他的實體路徑是『\\ServerC\Files\ImgFiles』
只需要IIS設定、檔案系統的權限設定設定好
您的程式連改都不必改
(因為要取得實體路徑,都是透過Server.MapPath("/ImgFiles")取得

彈性很大、方便管理、方便維護、程式撰寫維護容易(不必處理檔案同步問題)

誠摯建議您仔細思考理解一下小喵所講的
^_^
本篇文章回覆於2018-09-16 12:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

cat
檢舉此回應
回彩虹大 兩個網站是吃同一個資料庫嗎~ 是的

感謝topcat大大詳細說明,我只須把B主機路徑設為 \\ServerB\Files\ImgFiles(區網的主機名稱和實體路徑即可嗎?)
我試試看
謝謝
本篇文章回覆於2018-09-17 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
只須把B主機路徑設為 \\ServerB\Files\ImgFiles(區網的主機名稱和實體路徑即可嗎?)


#7有步驟
小喵寫的內容,建議您看仔細
本篇文章回覆於2018-09-17 11:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

cat
檢舉此回應
感謝topcat大跟彩虹大 獲益良多
本篇文章回覆於2018-09-18 14:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.