Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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上载两次(使用AsyncFileUpload和AjaxControlToolkit)_C#_Asp.net_Ajaxcontroltoolkit_Image Uploading_Asyncfileupload - Fatal编程技术网

C# ImageUpload上载两次(使用AsyncFileUpload和AjaxControlToolkit)

C# ImageUpload上载两次(使用AsyncFileUpload和AjaxControlToolkit),c#,asp.net,ajaxcontroltoolkit,image-uploading,asyncfileupload,C#,Asp.net,Ajaxcontroltoolkit,Image Uploading,Asyncfileupload,我正在使用AsyncFileUpload(AjaxControlToolkit)在控件中上载图像。问题是上载功能(AsyncFileUpload1\u UploadedComplete)同时在按钮单击和页面加载上运行,因此它会将同一图像上载两次 代码如下所示: 正面: <%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %> <script typ

我正在使用
AsyncFileUpload
(AjaxControlToolkit)在控件中上载图像。问题是上载功能(
AsyncFileUpload1\u UploadedComplete
)同时在按钮单击和页面加载上运行,因此它会将同一图像上载两次

代码如下所示:

正面:

<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
  <script type="text/javascript">
    function uploadComplete(sender, args) {
      var pathForUploadedImage = $('#uploadedHiddenField').val();
      $get("uploadImageImg").src = $('#uploadedHiddenField').val();
      $(".uploadImage").fadeIn(100);
    }
  </script>
  <asp:Image id="uploadImageImg" class="uploadImage" alt="" runat="server" ClientIDMode="Static" />
    <div id="uploadedImageDiv"></div>
    <asp:Image ID="loader" runat="server" ImageUrl="~/library/images/loading.gif" Style="display: None" />
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
    <asp:AsyncFileUpload ID="AsyncFileUpload1" runat="server" ClientIDMode="Static" CssClass="asyncFileUpload" OnClientUploadComplete="uploadComplete" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" CompleteBackColor="white" Width="65" />
    <asp:HiddenField ID="uploadedHiddenField" ClientIDMode="Static"  runat="server"/>

函数上载完成(发送方,参数){
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(), Guid.NewGuid().ToString(), "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(),Guid.NewGuid().ToString(),“top.$get(\”“+uploadedHiddenField.ClientID+“\”)。值=“+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)
有效=真;
返回有效;
}