2013-05-01 43 views
2

我在頁面上有一個空文件輸入字段,我想使用jQuery在頁面上存在一個已存在的文件。使用jQuery分配文件輸入的文件

例如,我有以下鏈接:

<a href="download.pdf" class="file">Download Me</a> 

而下面的形式:

<form> 
    <input type="file" value=""> 
    <input type="submit" value=""> 
</form> 

我想使用jQuery採取鏈接的href,然後分配給它到文件上傳。我可以很容易地通過分配一個變量,像這樣的href開始這樣的:

var download = $("a.file").attr("href"); 

但後來我怎麼會去使用這個變量分配輸入文件的上傳?

+0

好了,路徑在網絡上的文件是從該用戶將被上傳(它實際上指向用戶的Internet臨時文件)文件的路徑不同。我建議在這種情況下刪除文件輸入(或給它一個不同的名稱或刪除它的名稱),並傳遞與隱藏輸入的網址。 – 2013-05-01 19:54:40

+0

'enctype =「multipart/form-data」'必須是你的朋友之一... 這看起來像你想做的事嗎? http://stackoverflow.com/questions/15259632/upload-image-as-base64-with-jquery-ajax – 2013-05-01 19:56:43

+0

它似乎有點複雜,我認爲它會。 @凱文 - 我可以通過URL,但我希望這與文件附件發送與鏈接。 – JCHASE11 2013-05-01 20:04:18

回答

1

從我理解你要做的是「使用表格標籤」來上傳文件輸入。你通過鏈接填充輸入。

HTML

啓用表格上的內容: http://www.w3.org/TR/html401/types.html#type-content-type

<form method="post" enctype="multipart/form-data"> 
    <input type="file" value=""> 
    <input type="submit" value=""> 
</form> 

jQuery的

現在,您可以向他們發送的jQuery到AJAX調用

/* untested code */ 
$(function(){ 
    var uploads = [], 
     form = $("form input").eq(0), 
     files = $("a.file").prop("href"), 
     len = files.length; 

    for (var i = 0; i < len; i += 1){ 
     // inc. validate files 
     // inc. validate form data 
     // inc. encryption 
     form.prop("src", files[i]); 
     uploads.push(form); 
    } 

    // upload form options.data = form 
    // http://api.jquery.com/jQuery.ajax/ 
    $.ajax(options); 
}); 

現在從我所瞭解的保護程序的方式來加密你發送的,這是明智的安全明智。

您不必「使用加密」進行測試。看看它是如何從那裏。 upload multiple images with jquery ajax and process them with php

+0

完美。非常感謝。這正是我需要開始的。 – JCHASE11 2013-05-01 20:47:26