【问题标题】:uploaded file content preview上传文件内容预览
【发布时间】:2013-03-21 04:40:32
【问题描述】:

在我的 asp.net 网络应用程序中,我想要一个第三方文件内容预览工具,通过使用该工具,我将显示上传的文件(如 jpg 或 tiff 或 xls 或 pdf 或 txt 或 doc)

protected void btn_upload_Click(object sender, EventArgs e)
{
    try
    {
        if (flup_upload.HasFile)
        {
            _fname = flup_upload.FileName.Replace(" ", "");
            string ext = Path.GetExtension(_fname).ToLower();

            if (ext == ".jpg" || ext == ".jpeg" || ext == ".bmp")
            {
               ------
            }
            else if (ext == ".xls" || ext == ".xlsx")
            {
               -----
            }
            else if (ext == ".pdf")
            {
               -----
            }
            else if (ext == ".tif" || ext == ".tiff")
            {
                ---
            }
            else if (ext == ".txt")
            {
               ----
            }
            else if (ext == ".docx" || ext == ".doc")
            {
               -----
            }
        }
    }
    catch (Exception ex)
    {
    }
}

即上传文件(如 jpg/tiff/xls/pdf/txt/doc)后,我想在预览中显示文件数据。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您也可以使用 ajaxcontroltoolkit 文件上传器来执行此操作;

    <td>
         <asp:Label runat="server" ID="myThrobber" Style="display: none; color: black;">
           UpLoading....
        </asp:Label>
        <br />
        <Ajax:AsyncFileUpload ID="FileUploadGaurdianPic" runat="server" ThrobberID="myThrobber"
          MaximumNumberOfFiles="1"
            OnClientUploadComplete="uploadComplete" OnUploadedComplete="FileUploadGaurdianPic_UploadedComplete" Style="margin-left: 0px" />
         <asp:Image runat="server" ID="imageGaurdainTemp" /> // temp image to show
                    </td>
    

    我们有OnUploadedComplete 事件,它是javascript 文件的函数名。也是用于服务器端处理的 Uploaded_Complete 事件;

    protected void FileUploadGaurdianPic_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        // storing the file path in session, in-order to get this in futrue and isnert it into the database. note that i am only getting the path here;
        Session["GuardianPic"] = "/Resources/Images/guardian/" + e.FileName;
        SaveImage(e.FileName, FileUploadGaurdianPic, 2);
    }
    // here i am generating the thumbnail,and i am uploading the orignal image to the temp path, if you don't need this, remove it. I am only saving the thumbnail to the orignal path;
    private void SaveImage(string FileName, AjaxControlToolkit.AsyncFileUpload uploader, int status)
    {
        string path = String.Empty;
        switch (status)
        {
            case 1:
                path = Server.MapPath("~/Resources/Images/Student/");
                break;
            case 2:
                path = Server.MapPath("~/Resources/Images/guardian/");
                break;
        }
    
        string name = String.Empty;
        string storedPath = String.Empty;
    
        int intThumbWidth = 100;
        int intThumbHeight = 100;
        // Check whether the file is really a JPEG by opening it
        System.Drawing.Image.GetThumbnailImageAbort myCallBack =
                       new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
    
        //Create Thumbnail
        Bitmap myBitmap = myBitmap = new Bitmap(uploader.PostedFile.InputStream); ;
    
        Bitmap map = new Bitmap(uploader.FileContent);
        // Save Thumbnail and Assign it to ThumbUrl out parameter
        System.Drawing.Image myThumbnail = myBitmap.GetThumbnailImage(intThumbWidth,
                                             intThumbHeight, myCallBack, IntPtr.Zero);
        try
        {
            string tempPath = Server.MapPath("/Resources/Images/temp/");
            if (!Directory.Exists(tempPath))
            {
                Directory.CreateDirectory(tempPath);
            }
            if (Directory.Exists(path))
            {
                name = Path.GetFileName(FileName);
                storedPath = path + name;
                myThumbnail.Save(storedPath);
                uploader.SaveAs(tempPath + name);
            }
            else
            {
                Directory.CreateDirectory(path);
                name = Path.GetFileName(FileName);
                storedPath = path + name;
                myThumbnail.Save(storedPath);
                uploader.SaveAs(tempPath + name);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    

    最后是显示图像的 javascript 函数;

    function uploadComplete(sender, args) {
        var imgDisplay = $get("imageGaurdainTemp");
        var img = new Image();
        img.onload = function () {
            imgDisplay.style.cssText = "height:100px;width:100px";
            imgDisplay.src = img.src;
        };
        img.src = "/Resources/Images/guardian/" + args.get_fileName();
    
    }
    

    我希望这会有所帮助:D

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 2013-02-14
      • 2014-02-03
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2012-10-05
      • 1970-01-01
      相关资源
      最近更新 更多