[英]How to get full path of file using input type file in javascript?
我想使用jquery + javascript為電子郵件實現附件功能,例如Gmail。
因此,我使用輸入類型的文件來選擇文件-該文件僅提供文件名,而不提供文件所在位置的完整路徑。 我想要文件的完整路徑,以便將文件轉換為字節,然后將帶有文件字節的ajax請求發送到服務器。 我用這個:
<input type="file id="fileUpload">
var filePath=$('#fileUpload').val();
但是filePath
var僅包含所選文件的名稱,而不包含完整路徑。 我在網上搜索了它,但出於安全原因,似乎瀏覽器(FF,chrome)僅提供文件名。
謝謝。
不用了 相信我。
最好的選擇Javaranch:“文件上傳方法” 。
那是不可能的。 如果可能的話,我可以通過操縱您的上傳字段來訪問硬盤上的任何文件。 無論如何,您為什么需要它?
正如您已經提到的,許多瀏覽器只是不允許您這樣做。 那就是:1)一件好事(安全和諸如此類的東西),2)正確的答案(沒有辦法強迫他們給出完整的路徑,缺少一些利用)。 很抱歉您不喜歡它,但這不可能使答案有所不同。
更為積極的一點是,可能可以使用某些Flash或Java小程序來訪問本地文件(例如Uploadify),但隨后用戶需要允許其特權提升。
編輯:我檢查了GMail的功能,您可能想要的東西與您的問題完全不同:它使用了巧妙地偽裝的iframe
(無邊框,背景相同,看起來像頁面的一部分),其中包含用於文件上傳的小表格。 簡化:
<form id="main_mail_form">
<input type="hidden" name="compose_mail_identifier" value="id_beef-cafe">
<!-- buttons and previous form fields - subject, to, cc -->
<iframe src="attachments?for_message=id_beef-cafe">
<!-- note that we're passing ^^^^^^^^^^^^ the same identifier here -->
</iframe>
<!-- other form fields and buttons -->
</form>
在iframe中:
<form id="attachment_mail_form">
<input type="hidden" name="compose_mail_identifier" value="id_beef-cafe">
<!-- ^^ note that this has the same value as the main form -->
<input type="file">
<!-- other form elements -->
</form>
當您向郵件添加附件時,您僅在iframe中提交表單。 Google似乎使用每個消息唯一的標識符(在示例中命名為compose_mail_identifier
)將附件與電子郵件進行匹配。 這樣,附件和郵件將以不同的形式處理,並且僅在您單擊“發送”時才合並到電子郵件中。
您將無法以這種方式破壞文件,因為它破壞了瀏覽器強制執行的基本安全規則。 我喜歡使用的一個技巧是創建一個無邊框的iframe來容納一個上傳表單。 然后,如果您決定將附件的記錄插入數據庫,則應該可以上傳文件並使用文件名和某種ID將其發布回父窗口。 我使用iframe是因為它模仿了您希望在現代Web應用程序中實現的類似“ AJAX”的行為。
幾天前,我創建了一個類似的電子郵件附件解決方案。 這並不像您希望的那么簡單,所以是的,簡短的答案是您將需要付出更多的工作和思考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.