使用ASP.NET FileUpload控件中的Javascript加载图像

时间:2011-05-09 18:41:53

标签: c# javascript asp.net image file-upload

在用户使用asp.net fileupload控件<asp:Image ID="imgPicture" width="200" height="200" runat="server" />

选择一个图像后,我尝试使用图像加载一个asp图像框<asp:FileUpload ID="fluPicture" runat="server" OnChange="LoadImage(this.value, 'imgPicture');" Width="200"/>

HTML

<asp:Image ID="imgPicture" width="200" height="200" runat="server" />
<asp:FileUpload ID="fluPicture" runat="server" OnChange="LoadImage(this.value, 'imgPicture');" Width="200"/>

Javascript

<script type="text/javascript">
    function LoadImage(path, img) {
        imgPrev = document.images[img];
        imgPrev.src = path;
   }
</script>

图像不会加载到imgPicture控件中。另外我注意到,通过向javascript函数添加警报以警告路径和图像,路径为C:\fakepath\ImageName.jpg。我不确定为什么它说假路径。

感谢任何帮助。另请注意,此项目后面有一个C#代码文件。

3 个答案:

答案 0 :(得分:2)

在完成所有输入后,我将FileInput控制代码更改为:

<asp:FileUpload ID="fluPicture" onchange="if (confirm('Upload ' + this.value + '?')) this.form.submit();" runat="server" Width="200"/>

然后我在Page.OnLoad事件中添加了一个测试,以确定文件是否准备就绪 上传。

if (fluPicture.PostedFile != null && fluPicture.PostedFile.ContentLength > 0) UploadImage();

然后我允许UploadImage()方法上传图像,存储图像,然后将图像框的URL设置为上传图像的URL。

谢谢大家的帮助和意见。另外,我很欣赏jQuery的想法。在这种情况下,我只需要快速而肮脏的东西来完成工作。

答案 1 :(得分:0)

在您回复邮件之前,您的文件不会上传,这听起来像您只是浏览文件,然后在回发/上传图片之前尝试获取缩略图。

答案 2 :(得分:-2)

ASP.Net(HTML)代码:

<asp:FileUpload ID="FileUpload1" runat="server" Height="22px" onchange="showImage()"/>
<asp:Image ID="Image1" runat="server" Width="200PX" Height="200PX"   />

JAVASCRIPT代码:

function showImage() 
        {
            // Get File Upload Path & File Name
            var file = document.getElementById("FileUpload1");
            // Set Image Url from FileUploader Control
            document.getElementById("Image1").src = file.value;
            // Display Selected File Path & Name
            alert("You selected " + file.value);
            // Get File Size From Selected File in File Uploader Control 
            var inputFile = document.getElementById("FileUpload1").files[0].size;
            // Displaty Selected File Size
            alert("File size: " + inputFile.toString());
        }

我认为那可以帮到你。它完全在我的电脑上运行。