2011-02-01 50 views
2

我試圖使用PhoneGap FileUploader plugin從iPhone上傳圖片到我的服務器FileUploader插件(PhoneGap的)爲iPhone

如何使用uploadByUri功能到底是什麼?我不明白,所有的參數...

FileUploader.prototype.uploadByUri("http://www.mysite.com/images/", imageURI, 
params, fileKey, "myimage", "image/jpg", uploadSuccess, uploadFail, uploadProgress) 

我用什麼來爲「params」和「filekey」?讀我的檔案上寫着:

    文件
  • PARAMS與主要對象的
  • 的FileKey參數名:價值PARAMS發送到服務器

現在我把null並且沒有錯誤,但目標文件夾中沒有圖像。

另外,你知道我是否可以直接從照相機上以base64編碼的字符串上傳圖像,而不是從相冊中的圖像上傳圖像嗎?

謝謝你的幫助。

Roberto

回答

1

fileKey是服務器期望的文件字段的名稱。因此,如果您通過網絡應用上傳文件,您將擁有一個<input type="file" name="fileKey">,服務器將查找「fileKey」以獲取文件數據。

我相信params是未使用的。

上傳base64編碼圖像就像上傳我假設的文本文件一樣。在服務器上,您需要將其轉換爲圖像文件。

+0

感謝您的答案,但我認爲有一個詞缺少:「你會有一個和服務器會」。我仍然不明白fileKey的含義。服務器期望什麼字段?我已經指定了目標文件名('myimage')和源文件(imageURI)... – 2011-02-01 21:53:00

+0

ha我在回答中放入了一些html,並將其刪除!在HTML頁面中,您將擁有一個type =「file」和name =「fileKey」屬性的輸入元素。因此,如果您的服務器代碼是從常規網頁發佈的,那麼您的服務器代碼會期望POST消息具有由「fileKey」名稱屬性標識的文件數據。 – davejohnson 2011-02-02 18:14:27

1

嗯,我花了3天的時間才發現FileUploader並沒有進行ftp上傳,而且服務器目標實際上不是一個文件夾,而是一個服務器端腳本。如果其他人需要幫助,我會回答我的問題。

這是一個準系統php腳本,用於保存FileUploaded上傳的圖像。

<? 
// the actual uploaded image 
$uploaded_image = $_FILES['image']['tmp_name']; 
// the uploaded image name 
$uploaded_image_name = $_FILES['image']['name']; 
// location where you want to save the image 
$saved_image = "my_images/$uploaded_image_name"; 
// saves the image 
move_uploaded_file($uploaded_image, $saved_image); 
?> 

確保在您的php文件所在的位置創建一個文件夾(本例中爲「my_images」)。

要觸發FileUploader插件:

window.plugins.FileUploader.uploadByUri("http://www.yourserver.com/your_php_script.php", your_actual_image, null, "image", "my_image.jpg", "image/jpg", uploadSuccess, uploadFail, uploadProgress); 

請注意,我的FileKey參數是「圖像」,因爲我提供的圖片上傳。這匹配$_FILES['image']['tmp_name']$_FILES['image']['name']

請務必在您的www文件夾中複製'fileUploader.js',但在您的Plugins文件夾中'fileUploader.h'和'fileUploader.m'。 (不要複製FileUploader文件夾本身)。

羅伯託