2009-11-18 36 views
0

我想在asp.net mvc视图中实现uploadify的checkscript功能,但是我无法确定我应该在控制器端使用的密钥。下面是PHP脚本,但我不是很熟悉PHP,不能确定什么PHP刮出了httprequest。有没有人执行过这个?文档有点稀疏(如不存在)。Jquery Uploadify checkscript

$fileArray = array(); 
foreach ($_POST as $key => $value) { 
    if ($key != 'folder') { 
     if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) { 
      $fileArray[$key] = $value; 
     } 
    } 
} 
echo json_encode($fileArray); 
?> 
+0

所以你试图在asp.net mvc中实现这个php代码? – stimms 2009-11-18 02:46:50

+0

上面的示例脚本没有uploadify。我很难弄清楚那个剧本做了什么,但是我把它整理出来了。见下面的答案。 – 2009-11-18 04:14:31

回答

0

这里是任何人搜索的解决方案。基本上,uploadify脚本发送文件名和它在表单集合中生成的唯一密钥。您可以通过遍历allkeys来获取它。下面的控制器动作遍历整个表单allkeys集合,如果键不是文件夹(uploadify文件夹参数也传递给scriptCheck的formscollection),它会检查文件是否已经存在。如果确实存在,则将键和值添加到字典中,然后将字典返回给客户端。然后,uploadify插件会提醒用户该文件存在,并让他们有机会取消上传。希望这可以帮助别人。

public ActionResult FileExists(FormCollection forms) 
    { 
     Dictionary<string,string> fileArray = new Dictionary<string,string>(); 

     foreach (string key in forms.AllKeys) 
     { 
      if (key != "folder") 
      { 
       string targetDirectory = Path.Combine(Request.PhysicalApplicationPath, @"uploads\documents\"); 
       string targetFilePath = Path.Combine(targetDirectory, forms[key]); 
       if (System.IO.File.Exists(targetFilePath)) fileArray.Add(key, forms[key]); 
      } 
     } 

     return Json(fileArray); 
    }