2009-11-18 66 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); 
    }