2012-12-13 106 views
1

我想從一個客戶端腳本自動上傳一個文件,在我的服務器上打開一個PHP頁面,發送一個本地路徑作爲GET參數。這是一個簡單的python腳本。我的問題是,我不能只填寫輸入類型文件的值並自動發佈表單,因爲出於安全原因,這是行不通的。用php curl從客戶端上傳文件到服務器?

所以,我想使用捲曲,但後來我意識到...我無法訪問我的服務器中的$_FILES['myfile']['tmp_name'],因爲這隻發佈了multipart/form-data form,對吧?

有沒有辦法解決這個問題?有沒有其他方式從瀏覽器上傳文件?這將是理想的能夠用PHP做到這一點,因爲我想使用openID身份驗證,然後將上傳郵件保存在MySQL數據庫中。提前謝謝了。

回答

0

我想你還沒有真正理解爲什麼捲曲不是一個可行的解決方案。您的個人電腦文件默認爲而不是。而不是說,如果你想分享你的硬盤,你需要安裝和配置了很多東西:

  1. 你需要配置你的路由器使得進入的連接將被重定向到您的PC
  2. 您需要配置您的防火牆如此傳入的連接將通過
  3. 您需要安裝一個可接受並提供文件請求的軟件(網絡服務器,FTP服務器,NFS服務器......)
  4. 您需要指示關於你想要共享什麼精確文件的軟件(你不想讓你的完整硬盤驅動器向世界開放)
  5. 你可能想限制誰可以訪問您的文件:用戶名+密碼,證書,IP地址過濾器...

如果您想上傳,無需用戶干預的文件時,用戶需要安裝一個程序在他的計算機中提供了這個功能:我提到的其中一個或自定義程序。你不能用準系統的標準網絡瀏覽器來做。

你說了一句客戶端 Python腳本。不確定客戶端在Python上下文中的含義,但是Python明確地能夠打開HTTP連接併發送文件。跟蹤該軌道。

+0

感謝Alvaro的回覆,我明白你的意思。所以我會尋找的是一種複製multipart/form-data將數據發送到服務器的方式。我認爲這不容易或根本不可能?所以也許你使用python的想法是最好的選擇,我不期待...因爲在python中設置openID auth不會很有趣:) –

+0

我對Python一無所知,但我確信它有用於OpenID和HTTP文件上傳的庫。這並不困難。 –

+0

我發現一個解決方案首先使用python FTP庫上傳到臨時文件夾,然後通過PHP將文件移動到特定文件夾,一旦他用他的openID登錄,文件會在一段時間後自動從臨時文件夾中刪除。感謝您的幫助 :) –

相關問題