2015-07-05 54 views
0

兄弟和姐妹。從文件輸入中更改圖像而不發送表格

有沒有辦法改變IMG上的HTML使用作爲img的輸入文件標籤中的選定圖像的src而不發送包含IMG的表單到php?

我想要做的就是在發送php設置以保存用戶的配置文件之前,在頁面上看到圖像的預覽。

在此先感謝。

+0

你需要證明你有什麼到目前爲止已經試過。 –

+0

我開始創建頁面,但還沒有完成。 P.D .:我甚至不想爲此提供AJAX解決方案,謝謝! –

回答

0

對於​​可以使用FileReader API

var inp = document.querySelector('input'); 
 
inp.addEventListener('change', function(e){ 
 
    var file = this.files[0]; 
 
    var reader = new FileReader(); 
 
    reader.onload = function(){ 
 
     document.getElementById('preview').src = this.result; 
 
     }; 
 
    reader.readAsDataURL(file); 
 
    },false);
<input type="file" accept="image/*"/> 
 
<img id="preview"/>

1

從blueimp有一個很棒的圖書館,做你想做的。你只需要導入庫:

<script src="js/load-image.all.min.js"></script> 

,並設置爲[onchange事件]事件處理[4]所需的輸入,像這樣:

document.getElementById('file-input').onchange = function (e) { 
    var loadingImage = loadImage(
     e.target.files[0], 
     function (img) { 
      document.body.appendChild(img); 
     }, 
     {maxWidth: 600} 
    ); 
    if (!loadingImage) { 
     // Alternative code ... 
    } 
}; 

第一個參數是一個文件或Blob對象或只是一個圖像URL,第二個是一個回調,如果一切正確,您可以接收一個HTML圖像元素,並且可以調整或裁剪作爲loadImage函數的第三參數的選項映射返回的對象。

在本例中,e.target是對派發事件的對象的引用。看看File API

重要事項:對於File或Blob對象作爲第一個參數,這僅適用於瀏覽器支持URL API或FileReader的情況。

檢查更多信息回購:blueimp/JavaScript-Load-Image

+0

你深深知道我的真正含義! 嘿Henoc tu eres el de CodigoFacilito no? –

+0

雖然這可能在理論上回答這個問題,但[這將是更可取的](// meta.stackoverflow.com/q/8259)在這裏包含了答案的基本部分,並提供了供參考的鏈接。 –

+0

對不起@RohitGupta,我是新來的回答問題:)現在好多了? –

0

哦,我尋找你的問題,並發現這一點:

  • 首先,你需要閱讀<input type="file">因此這個參考將幫助您需要這個:Reading client side text file using Javascript,在這裏他們讀取輸入並在DOM中將其寫入畫布標籤,因此您需要以下行:document.getElementById('file').addEventListener('change', readFile, false);

  • 同樣在readFile函數您需要將文件的src分配給<img>標籤,並且類似於:

    函數readFile(evt)var files = evt.target.files; var file = files [0]; var img = document.getElementById('myimg'); img.src = file.src; }

做一些測試並告訴我是否有效。

+0

所以畫布是這個問題的主要關鍵,我從未實現過畫布,但這是一個好的開始。 謝謝,對大家!!!!明天或後天,我將測試此處所述的所有答覆。 –

+1

我採納了您的建議,並在網上衝浪尋找File API信息,那就是解決方案。 謝謝 –

+0

好的,不要忘記標記爲正確的,以便其他人輕鬆找到響應。 – RokumDev

0
<input type="text" class="my-input" /> 
<img src="#" class="preview" /> 

$('.my-input').on('keyup', function() { 
    $('.preview').attr('src', $(this).val()); 
}); 

的jsfiddle:https://jsfiddle.net/913bnkyq/

檢查img元素在開發工具中的jsfiddle看到src屬性如您在輸入類型得到實時更新。