Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ImageUpload(AjaxControlToolKit和AsyncFileUpload)存在问题_C#_Asp.net_Ajaxcontroltoolkit_Image Uploading_Asyncfileupload - Fatal编程技术网

C# ImageUpload(AjaxControlToolKit和AsyncFileUpload)存在问题

C# ImageUpload(AjaxControlToolKit和AsyncFileUpload)存在问题,c#,asp.net,ajaxcontroltoolkit,image-uploading,asyncfileupload,C#,Asp.net,Ajaxcontroltoolkit,Image Uploading,Asyncfileupload,我在使用AjaxControlToolKit时遇到问题。 我可以上传文件并显示它们,而无需回发,但如果用户改变主意并上传另一张图片,它仍然会显示第一张图片。如果您能提供帮助,我将不胜感激 这是我的代码: 正面: 函数上载完成(发送方,参数){ var pathForUploadedImage=$('uploadedHiddenField').val(); $get(“uploadImageImg”).src=$(“#uploadedHiddenField”).val(); $(“.upload

我在使用AjaxControlToolKit时遇到问题。 我可以上传文件并显示它们,而无需回发,但如果用户改变主意并上传另一张图片,它仍然会显示第一张图片。如果您能提供帮助,我将不胜感激

这是我的代码: 正面:


函数上载完成(发送方,参数){
var pathForUploadedImage=$('uploadedHiddenField').val();
$get(“uploadImageImg”).src=$(“#uploadedHiddenField”).val();
$(“.uploadImage”).fadeIn(100);
}
返回:

 protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {

        try
        {

            Styling.SetupStyles();
            string virualFolder = "";
            if (string.IsNullOrEmpty(UploadDirectory))
            {
                virualFolder = "/" + Styling.GetStyleValue("customNewsImagesFolder", "") + "/";
            }
            else
            {
                virualFolder = "/" + Styling.GetStyleValue(UploadDirectory, "") + "/";
            }



            string fileExtension = Path.GetExtension(e.FileName);

            int fileSize = Convert.ToInt32(e.FileSize);

            string physicalFolder = Server.MapPath(virualFolder);

            string randomFileName = System.IO.Path.GetRandomFileName().Replace(".", "");

            bool isUnique = true;
            DirectoryInfo dir = new DirectoryInfo(MapPath(virualFolder));
            FileInfo[] files = dir.GetFiles();
            foreach (FileInfo myFile in files)
            {
                if (myFile.Name == randomFileName)
                {
                    isUnique = false;
                }
            }

            IsAllowedFileExtension(fileExtension);

            bool error = false;

            if (!isUnique)
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('En fil med detta namn finns redan, var vänlig och döp om din fil');</script>", false);
            }
            else if (!IsAllowedMaxFileSize(fileSize))
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('Filen är för stor, vänligen försök igen med en fil som är mindre än 2 MB');</script>", false);
            }
            else if (!IsAllowedFileExtension(fileExtension))
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('Felaktigt filformat, vänligen försök igen med en fil av följande typ: .jpg .jpeg .png .gif');</script>", false);
            }

            if (!error)
            {
                AsyncFileUpload1.SaveAs(physicalFolder + randomFileName + fileExtension);
                string thePath = (virualFolder + randomFileName + fileExtension).Replace("\\", "/");

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "filePath", "top.$get(\"" + uploadedHiddenField.ClientID + "\").value = '" + thePath + "';", true);                

            }
        }
        catch (Exception ex)
        {
            erLog.LogException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
        }
    }

    private bool IsAllowedFileExtension(string fileExtension)
    {
        bool valid = false;
        if (fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".jpeg" || fileExtension.ToLower() == ".gif" || fileExtension.ToLower() == ".png")
            valid = true;
        return valid;
    }

    private bool IsAllowedMaxFileSize(int fileSize)
    {
        bool valid = false;
        if (fileSize < 2100000)
            valid = true;
        return valid;
    }
protectedvoid AsyncFileUpload1\u UploadedComplete(对象发送方,AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
尝试
{
SetupStyles();
字符串virualFolder=“”;
if(string.IsNullOrEmpty(UploadDirectory))
{
virualFolder=“/”+style.GetStyleValue(“customNewsImagesFolder”,”)+“/”;
}
其他的
{
virualFolder=“/”+style.GetStyleValue(UploadDirectory)、“+”/”;
}
字符串fileExtension=Path.GetExtension(e.FileName);
int fileSize=Convert.ToInt32(e.fileSize);
字符串physicalFolder=Server.MapPath(virualFolder);
字符串randomFileName=System.IO.Path.GetRandomFileName().Replace(“.”,”);
bool isUnique=true;
DirectoryInfo dir=新的DirectoryInfo(映射路径(virualFolder));
FileInfo[]files=dir.GetFiles();
foreach(FileInfo myFile in files)
{
if(myFile.Name==randomFileName)
{
isUnique=false;
}
}
IsAllowedFileExtension(fileExtension);
布尔误差=假;
如果(!isUnique)
{
错误=真;
ScriptManager.RegisterClientScriptBlock(this.Page,this.GetType(),“tmp”,“警报('En fil med detta nam finns redan,var vänlig och döp om din fil');”,false);
}
如果(!IsAllowedMaxFileSize(fileSize))则为else
{
错误=真;
ScriptManager.RegisterClientScriptBlock(this.Page,this.GetType(),“tmp”,“alert('Filenär för stor,vänligen förök igen med en fil somär mindreän 2MB');,false);
}
如果(!IsAllowedFileExtension(fileExtension))
{
错误=真;
ScriptManager.RegisterClientScriptBlock(this.Page,this.GetType(),“tmp”,“alert('Felaktigt filformat,vänligen försök igen med en fil av följande typ:.jpg.jpeg.png.gif');,false);
}
如果(!错误)
{
AsyncFileUpload1.SaveAs(物理文件夹+随机文件名+文件扩展名);
字符串thePath=(virualFolder+randomFileName+文件扩展名)。替换(“\\”,“/”;
ScriptManager.RegisterClientScriptBlock(this,this.GetType(),“filePath”,“top.$get(\“”+uploadedHiddenField.ClientID+“\”)。value='“+thePath+”;”,true);
}
}
捕获(例外情况除外)
{
LogException(例如,System.Reflection.MethodBase.GetCurrentMethod().Name);
}
}
私有bool是允许的文件扩展名(字符串文件扩展名)
{
bool valid=false;
如果(fileExtension.ToLower()=”.jpg“| | fileExtension.ToLower()=”.jpeg“| | fileExtension.ToLower()=”.gif“| | fileExtension.ToLower()=”.png”)
有效=真;
返回有效;
}
私有bool被允许最大文件大小(int fileSize)
{
bool valid=false;
如果(文件大小<2100000)
有效=真;
返回有效;
}

我认为问题在于我正在用“ScriptManager.RegisterClient ScriptBlock”行显示图像,但如果脚本已经在DOM中,它似乎没有注册脚本。

您没有指定AsyncFileUpload1\u UploadedComplete事件处理程序是否在控件或页面内。若无法解决您的问题,您可以尝试使用页面实例注册客户端脚本。另一个选项是在每次部分回发时生成唯一的脚本id

选项1(向页面实例注册客户端脚本):

选项2(每次部分回发生成唯一的脚本id):


你是最棒的!非常感谢,拯救了我的一天(是的,代码在控制中)
 protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {

        try
        {

            Styling.SetupStyles();
            string virualFolder = "";
            if (string.IsNullOrEmpty(UploadDirectory))
            {
                virualFolder = "/" + Styling.GetStyleValue("customNewsImagesFolder", "") + "/";
            }
            else
            {
                virualFolder = "/" + Styling.GetStyleValue(UploadDirectory, "") + "/";
            }



            string fileExtension = Path.GetExtension(e.FileName);

            int fileSize = Convert.ToInt32(e.FileSize);

            string physicalFolder = Server.MapPath(virualFolder);

            string randomFileName = System.IO.Path.GetRandomFileName().Replace(".", "");

            bool isUnique = true;
            DirectoryInfo dir = new DirectoryInfo(MapPath(virualFolder));
            FileInfo[] files = dir.GetFiles();
            foreach (FileInfo myFile in files)
            {
                if (myFile.Name == randomFileName)
                {
                    isUnique = false;
                }
            }

            IsAllowedFileExtension(fileExtension);

            bool error = false;

            if (!isUnique)
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('En fil med detta namn finns redan, var vänlig och döp om din fil');</script>", false);
            }
            else if (!IsAllowedMaxFileSize(fileSize))
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('Filen är för stor, vänligen försök igen med en fil som är mindre än 2 MB');</script>", false);
            }
            else if (!IsAllowedFileExtension(fileExtension))
            {
                error = true;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>alert('Felaktigt filformat, vänligen försök igen med en fil av följande typ: .jpg .jpeg .png .gif');</script>", false);
            }

            if (!error)
            {
                AsyncFileUpload1.SaveAs(physicalFolder + randomFileName + fileExtension);
                string thePath = (virualFolder + randomFileName + fileExtension).Replace("\\", "/");

                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "filePath", "top.$get(\"" + uploadedHiddenField.ClientID + "\").value = '" + thePath + "';", true);                

            }
        }
        catch (Exception ex)
        {
            erLog.LogException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
        }
    }

    private bool IsAllowedFileExtension(string fileExtension)
    {
        bool valid = false;
        if (fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".jpeg" || fileExtension.ToLower() == ".gif" || fileExtension.ToLower() == ".png")
            valid = true;
        return valid;
    }

    private bool IsAllowedMaxFileSize(int fileSize)
    {
        bool valid = false;
        if (fileSize < 2100000)
            valid = true;
        return valid;
    }
ScriptManager.RegisterClientScriptBlock(this, this.Page, "filePath", "top.$get(\"" + uploadedHiddenField.ClientID + "\").value = '" + thePath + "';", true);
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(), "top.$get(\"" + uploadedHiddenField.ClientID + "\").value = '" + thePath + "';", true);