How To: 删除 C1Upload 临时文件

C1Upload 控件可以用于上传文件到服务器,可以一次性上传多个文件。当文件上传时,用户可以取消上传。同时,可以通过“取消全部”按钮取消所有上传动作。或者通过,“停止”按钮取消特定文件的上传。当上传动作被取消时,文件将停止上传至服务器。但是,文件可能存在于“Temp Folder”中,占用服务器空间。本篇文字将讲述如何删除“Temp Folder”中的临时文件。

发布于 2013/02/05 00:00

ComponentOne Enterprise

C1Upload 控件可以用于上传文件到服务器,可以一次性上传多个文件。当文件上传时,用户可以取消上传。同时,可以通过“取消全部”按钮取消所有上传动作。或者通过,“停止”按钮取消特定文件的上传。当上传动作被取消时,文件将停止上传至服务器。

但是,文件可能存在于Temp Folder”中,占用服务器空间。本篇文字将讲述如何删除“Temp Folder”中的临时文件。

客户端“取消”和“取消全部”按钮 click 事件会执行 Ajax 异步调用。在服务器端的方法中,我们可以删除临时文件。以下代码实为前台 Ajax 方法:

<script type="text/javascript">
 $(document).ready(function () {
   var count = -1;
   $("#C1Upload1").c1upload({
    //cancel buuttons are shown when progress event is raised.
    progress: function (e) {
      //click event of Cancel Button
      $(".wijmo-wijupload-cancel").click(function () {
         count++;
         //condition to restrict calling server side method only once.
          if (count == 0) {
            DeleteTempFiles();
          }
       });
    }
   });
  //click event of CancelAll button
  $(".wijmo-wijupload-cancelAll").click(function () {
     DeleteTempFiles();
  });
});
//Function to make an ajax() call to server side method.
function DeleteTempFiles() {
  //place an ajax call to method "DeleteTempFiles"
  //for deleting files in Temp folder
  $.ajax({
         type: "POST",
         url: "Default.aspx/DeleteTempFiles",
         data: "{}",
         contentType: "application/json",
         charset: "utf-8",
         dataType: "json",
         async: true,
         cache: false,
         success: function (msg) {
            //message returned from server side method.
            alert(msg.d);
         },
         error: function (x, e) {
            alert("The call to the server side failed. " + x.responseText);
         }
     });
}
</script>
ajax 调用后台 WebMethod 方法删除 TempFolder 属性所对应的临时文件夹。代码如下:
protected void Page_Load(object sender, EventArgs e)
{   //save path of TempFolder in Session variable
    Session["Path"] = C1Upload1.TempFolder;
}
[WebMethod]
public static string DeleteTempFiles()
{
  try {
    //Get path of TempFolder from Session object
    string Path=HttpContext.Current.Session["Path"].ToString();
    System.IO.DirectoryInfo TempFolder = new DirectoryInfo(HttpContext.Current.Server.MapPath(Path));
    foreach (FileInfo file in TempFolder.GetFiles())
    {
       file.Open(FileMode.Open, FileAccess.ReadWrite);
       file.Delete();
    }
   }
   catch(Exception ex){
   }
   return "temp files deleted";
 
下载示例:Demo
 

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态