我需要能够上传图像并将图像返回到屏幕,以便不使用输出标签查看,而是使用带有src元素的img标签。在我看过的其他教程中,其中一件事就是#sign作为src元素的占位符。我需要更多细节来实现它的这一部分。我从解决方案中引用了一个我无法实现的类似问题:HTML input type=file, get the image before submitting the form
我使用angular并且我不了解jQuery,所以我更喜欢避免使用jQuery解释。我使用以下代码上传和查看图片(如果下面的代码包含jQuery,我不会知道它,因为我只了解其中的一些;我找到了一个库,我和#39;我一直想弄清楚):
HTML:
<input type="file" id="files" name="files[]" file-model="myFile"/>
<output id="list" class="resize-image" alt="Image"></output>
Javacript:
var handleFileSelect = function (evt) {//already set up for multiple files; not what i want to do.
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML = ['<img class="thumb" src="', e.target.result,
'" title="', escape(theFile.name), '"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
长话短说,我想允许用户从桌面上传文件,查看上传的文件并裁剪图像以符合我的规格。我已经看过很多这样的库,但很多人在演示中都有错误,如果没有在我的机器上。其他人遗漏了上述过程的一部分,我无法弥合差距。通过输入上传图像并将其作为带有&#34; src&#34;的图像显示在屏幕上的问题。似乎是这个过程中的第一个绊脚石。
答案 0 :(得分:1)
要上传文件但保留在同一页面上,您正在查看AJAX。
您可以手动编码:(与您相关的示例)
AJAX call returns status 200 but no content
或使用插件。我在无数项目中使用过这个:
http://hayageek.com/docs/jquery-upload-file.php
有关AJAX如何工作的一些简单示例(jQuery示例,但原理相同 - 代码更容易理解):
Populate dropdown 2 based on selection in dropdown 1
有关详情,请在XMLHttpRequest
为了快速学习jQuery,这里有很棒的(免费)视频教程:
答案 1 :(得分:1)
这里有一个角度指令:http://ngmodules.org/modules/angular-file-upload可以处理文件上传。
它将为您提供文件路径作为字符串,您可以保存并绑定到图像标记的ng-src属性。您可以使用ng-show根据绑定到ng-src属性的变量值隐藏/显示图像。
确保使用ng-src,而不是src,否则您将无法正常使用绑定。