![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 張詩雨 ![]()
![]() |
但是我不是很清楚form post對於type=file的運作。 一般來說簡單的上傳網頁的前端是這樣處理: 那麼按下submit的按鈕後, 檔案是真的上傳到類似/tmp的資料夾了嗎? 還是沒有呢? 我的server是Linux系統, 如果上傳了,會放在/tmp裡還是哪裡呢? 謝謝大家幫忙喔!
本篇文章發表於2013-04-08 16:21
== 簽名檔 ==
既然走到不歸路,那麼如果有人說:「哇!會寫程式的女孩子,真厲害!」 也可以算是一種安慰吧?(雖然寫程式能力很差) |
1樓 |
表單送出後,檔案會傳給test.cgi
至於test.cgi將傳來的檔案存放到哪裡,就要看test.cgi怎麼寫的了
本篇文章回覆於2013-04-08 17:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
張詩雨 ![]() |
不好意思,還是不太明白耶?
傳給test.cgi時,檔案是什麼樣子?? 我以為是傳到某個空間? 可以舉例嗎,謝謝喔!
本篇文章回覆於2013-04-08 18:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
我用您的程式碼做一個範例給您
您的檔案我命名為testupload.htm 您原來的程式碼 然後寫一個 cgi 程式命名為 test.cgi 程式碼如下: 測試網址在我 server http://ap.a168a.com/test/testupload.htm 在執行前要在 testupload.htm 所在目錄下建一個 tmp 次目錄,因為程式第4行我命名為 tmp 目錄,若您要讓人上載的是圖 就命名為 images 等隨您高興 執行結果1,如圖,看到我瀏覽slidemenu.jpg後按upload ![]() 上傳後顯示 slidemenu.jpg upload ok. 驗證是否已上傳ok 輸入網址http://ap.a168a.com/test/tmp/slidemenu.jpg 就可看到您上傳的圖 執行結果如下圖 ![]()
本篇文章回覆於2013-04-08 22:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
張詩雨 ![]() |
謝謝前輩們的指教!
可能是因為我對於POST還不太熟悉,因為我用POST只知道用name來抓取value,像是若file的name=welcome,那麼用post時以$_POST["welcome"]就能抓到檔案的路徑(就是選檔後的那串,只是因為瀏覽器不同,可能抓到的只有檔名)。 由於對perl不太熟, 可以請教一下 my $file = $cgi->param('welcome'); 這行跟php的$_POST["welcome"]是一樣的道理嗎? 那麼他所代表的值大概長什麼樣呢?(是value還是檔案串流) 真的很謝謝您們!
本篇文章回覆於2013-04-09 09:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
不大一樣
php請參考這篇去實作 http://phpmaster.com/file-uploads-with-php/
本篇文章回覆於2013-04-09 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
檔案上傳時,應該是串流 Stream的方式吧?
(我猜) 您不會的東西很多,應該趁早補上這些基礎 不然就很難進行下去喔 我看到您這些基礎不補齊,例如 POST / Perl語法等等 卻困在一些鑽牛角尖的東西上,好可惜啊 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 簡單的說,我覺得您這些「補充」發問,都幫不了您 也沒法幫您寫完這些功能 你以為能從 "程式碼"裡面學到東西 事實上會一直困在「很多單字」上、很多看不懂的單字上 而不瞭解「整體」功能、「整體」流程 這就是我說的鑽牛角尖
本篇文章回覆於2013-04-09 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
張詩雨 ![]() |
目前我對於POST的認知(或者網路上看過的教學)
大概都是name=value之類的 像bourne shell 的cgi(就是#!/bin/sh開頭的) 假設按鈕name=Submit,則接收後的"$Submit"則會是按鈕的值(若他的value=發送則$Submit=發送) 我不懂的是form的形態加上enctype="multipart/form-data" 接著用post的方式在另一端(action的網頁)做處理。 若POST大概是name=value這樣的形式, 那麼type=file傳給另一個網頁後,大家所對他的處理是用什麼方式呢? 我看"multipart/form-data"的說明是: 說明 所以處理的方式都是跟接收POST的方式一樣嗎? (只是根據form不同的編碼方式所以值不同) 麻煩大家幫忙解惑了!
本篇文章回覆於2013-04-09 13:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
最有價值解答
香帥 ![]() |
哇,精神可嘉,追根究底,
參考網路協定rfc才會知詳情 例如以下rfc post是http協定內的一小部份 http://tools.ietf.org/html/rfc2616#section-9.5 當您要寫http client或http server時就必需參考 那坊間的書也有,不過要找一下喔 您可以去實做一個陽春的ie,當您做post時,就會參考上述的rfc及相關的修訂rfc,就一定會知道原理的 我只寫過一個完整的irc client 參考以下rfc實作 http://www.ietf.org/rfc/rfc1459.txt 還有您也可以自創規格,當然英文要好,就可以將您規格上傳去審查認定
本篇文章回覆於2013-04-09 14:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
請參考 RFC 1867
http://www.ietf.org/rfc/rfc1867.txt
本篇文章回覆於2013-04-09 16:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
張詩雨 ![]() |
感謝各位前輩的指教!
其實我對於一些網路協定真的要好好研究(因為工作有接觸到,但我一直依賴同事所以沒好好學習)。 我會加油的,真的很謝謝大家的幫忙和解答!辛苦大家了!
本篇文章回覆於2013-04-09 21:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |