如何从radupload获取文件的真实路径

时间:2015-03-06 18:06:19

标签: javascript asp.net telerik radupload

我有这个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为安全而抛出,以便其他人无法访问文件路径,但是如何获取要显示的文件的真实路径它在标签图片上

1 个答案:

答案 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>,以便您可以加载不同的文件。