我對網絡編碼非常陌生,我正在努力做一些工作。用javascript替換圖像
我想用一個簡單的功能做一個小網頁,用用戶從他自己的計算機中選擇的圖像替換頁面上的現有圖像。所有這些預計將在離線狀態下完成。但是,我不知道如何......
我該如何解決這個問題?
p.s.離線我的意思是,我期望這可以在本地完成,無需上傳到服務器或任何東西。我應該把這個小小的頁面放在USB棒上,以便它可以用作一個小工具。
我對網絡編碼非常陌生,我正在努力做一些工作。用javascript替換圖像
我想用一個簡單的功能做一個小網頁,用用戶從他自己的計算機中選擇的圖像替換頁面上的現有圖像。所有這些預計將在離線狀態下完成。但是,我不知道如何......
我該如何解決這個問題?
p.s.離線我的意思是,我期望這可以在本地完成,無需上傳到服務器或任何東西。我應該把這個小小的頁面放在USB棒上,以便它可以用作一個小工具。
This (readAsDataURL)是你在找什麼。
見工作示例here
在附加的例子中,你可以上傳你的發送所選圖像的BASE64數據也。
沒有主題:大多數客戶正在尋找一個移動網絡應用程序,一個應用程序從手機拍照併發送到服務器。在網絡應用程序中不完全可行。
好吧。您將需要實現文件上傳功能。 如果是的話,你可以使用http://www.uploadify.com/ 然後你會使用onUploadSuccess方法來改變圖像。
當你說脫機?你的意思是沒有互聯網連接,或者網頁是否會像內聯網一樣存在於服務器上?
............只需添加到我自己的答案........
OK,所以你需要一個USB接口。爲什麼不在USB上安裝獨立的服務器就可以運行PHP。
http://www.server2go-web.de/index.html
$("#file_upload").uploadify({
height : 30,
width : 120,
swf : 'include/fileuploader/uploadify.swf',
uploader : 'include/fileuploader/uploadify.php',
'onUploadSuccess' : function(file, data, response) {
console.log('The file was saved to: ' + data);
$("#img-preview").html("<img src='"+data+"' />");
}
});
這不是答案。你可以使用原生JS完美地完成這項工作。 – Mosselman
@莫塞爾曼 - 這是答案。它給出了指導方針,展示*如何獲得信息,並提供了一個如何完成的例子,這正是要求的。 +1因爲在這裏的評論者中有大腦。當然,這*可以通過原生JS完成,這裏提到的插件展示瞭如何在源代碼中完成它。 –
你可以使用下面的JavaScript來做到這一點:
<script>
function changeImage(newimage)
{
image = document.getElementById('oldimage');
image.src = newimage;
}
</script>
這沒有幫助。 OP希望用本地計算機上傳的文件替換圖像,因此需要上傳文件。 – ciruvan
我想我會展示一個代碼示例,因爲這是StackOverflow的想法。我希望它能說明這件事情是如何運作的。
而不是依賴於一組插件和庫,你會發現,它可能更容易與本地JavaScript。如果你願意的話,你可以將jQuery添加到事件處理組合中,不管怎樣,它在web-dev工具箱中都是非常標準的。
首先讓我們添加HTML爲input
和一個佔位符img
元素。你當然可以動態地添加img
文件與jQuery或原生js。
<input id='ourfile' type='file' />
<!-- The image placeholder for our preview -->
<img id='preview' src='' />
// Lets cache our two elements of interest.
ourfile = document.getElementById('ourfile');
preview = document.getElementById('preview');
// Create an instance of the 'native' FileReader.
fr = new FileReader();
// When our input triggers change (i.e. image is selected) load the file using the file reader.
ourfile.onchange = function() {
file = ourfile.files[0];
fr.readAsDataURL(file);
}
// Bind to the `onload` event of our FileReader and set the src of the image to the result (base64 of the image).
fr.onload = function(){
preview.src = fr.result;
}
在@ Akki619的答案的鏈接顯示關於檢查圖像的有效性等方面的細節
這裏是一個鏈接到一個工作示例: http://jsfiddle.net/rUvUX/4/
你是什麼意思的「所有這些都預計將離線完成」? – FixMaker
你試過了什麼不起作用? – Akki619
最好把你設法解決這個問題的代碼片段。但是,這非常簡單,只需將文件中提供的url替換img標籤中'src'屬性中的url即可。 – KarelG