我有这个radupload:
<telerik:RadUpload ID="RadAsyncUploadBoxLogo" ClientID="RadAsyncUploadBoxLogo"
runat="server" ControlObjectsVisibility="None"
MaxFileInputsCount="1" MaxFileSize="4000000" OverwriteExistingFiles="True" ReadOnlyFileInputs="True"
Height="10px" TabIndex="12" OnClientFileSelected="OnClientFileSelectedHandler"
>
<Localization Remove="" Select=" Seleccionar Imagen" />
</telerik:RadUpload>
我有这个标签图片
<asp:Image ID="ImageLogo" ClientId="ImageLogo" CssClass="ImgLogo" runat="server"/>
使用此脚本我尝试将图像放在图像标记中:
function myOnClientFileSelect(radUpload, eventArgs) {
var url = radUpload.getFileInputs()[0].Value;
$('.ImgLogo').attr("src", url);
}
问题是变量url抛出了一条路径:fakepath / filename,我读到radupload为安全而抛出,以便其他人无法访问文件路径,但是如何获取要显示的文件的真实路径它在标签图片上
答案 0 :(得分:2)
其中file_input
是对<input type="file">
的引用,而img
是对<img>
的引用,您可以在更改处理程序中执行
if (file_input.files && file_input.files.length) { // some file has been set
// generate a blob uri to the file
var uri = URL.createObjectURL(file_input.files[0]);
// set this as the src of your <img>
img.src = uri;
}
此代码使用需要 IE 10 + 的URL.createObjectURL
来支持较低版本的 IE ,您可能需要使用<canvas>
代替<img>
,以便您可以加载不同的文件。