我們常常會說,將圖片上傳到服務器,將文件上傳到服務器,甚至是玩游戲的時候也會說到服務器,那么所謂的上傳到服務器到底是什么鬼呢?
前兩天,老大讓我做一個小功能,網站的有些文章是轉載過來的,文章上的圖片鏈接并沒有下載到本地,就直接上傳了,因此,文章的圖片鏈接就是別的網站的了。老大說要做一個小程序,將圖片的鏈接改過來,換成自己網站的鏈接。那么,在這里,這個功能就得這么分析:
1,復制粘貼別的網站的文章;
2,找到圖片,并下載到本地;
3,將圖片上傳到服務器,并修改圖片鏈接,替換成網站的鏈接
其實,聽完老大的分析步驟之后,我那是一臉迷糊啊。上傳到服務器什么鬼?其余的都還理解,原諒我對服務器是在不理解。
那么首先服務器是什么呢?服務器是一個24小時運行的,有固定的IP的計算機。所以,服務器和我們自己用的電腦是差不多的。我們自己的電腦也是可以做成服務器的,只要你能保證24小時開機,而且有固定的IP,就可以了。你可以在拉寬帶的時候,跟服務商買一個固定外網IP的套餐,也就是,不管是在國內還是國外,通過這個IP就可以找到你自己的電腦。這樣,你的電腦就可以是服務器了。所以,服務器并不是什么神秘的電腦。
先把服務器這個神秘的東西說白了,我們再順著思路往后分析。既然你的電腦就是服務器了,那么你電腦上運行的軟件也就都是運行在服務器上的了。如果你在你的電腦上安裝一個網站環境,配置一下,別人就可以通過你這個固定的IP訪問你電腦的網站了。你的電腦就是web服務器了。Windows的高級版本都帶有IIS,這是Windows系統上的web服務器環境。如果你想搭建php網站,你可以安裝Apache服務器環境。也就是一些軟件而已,環境搭建很簡單
既然服務器就是一臺電腦,只不過是有固定IP,能24小時運行而已。那么所謂的上傳到服務器就是上傳到電腦上的某個文件夾了。因此,秒想到WebClient的uploadfile方法,這個類有4個重載函數。我們挑有兩個參數且一個是服務器的地址,一個是我們所要上傳的文件(在這里是圖片)的地址。
那么服務器地址在哪呢?正如之前所說的,服務器地址就是你的電腦的某個文件夾地址。我所做的這個功能是在網站的完整的源碼下調試寫的,因此,我要上傳的服務器地址其實就是打包好的網站源碼下的某個文件夾地址。利用Server.MapPath方法,找到圖片絕對路徑就好了,MapPath方法是返回web服務器上指定的虛擬路徑相對應的物理文件路徑。