Jquery Uploadify контрольный скрипт - PullRequest
0 голосов
/ 18 ноября 2009

Я пытаюсь реализовать функцию контрольного сценария uploadify в представлении asp.net mvc, но я не могу определить, какой ключ я должен использовать на стороне контроллера. Ниже приведен скрипт php, но я не очень хорошо знаком с php и не могу определить, что php удаляет из httprequest. Кто-нибудь реализовал это? Документация немного скудна (как в несуществующей).

$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);
?>

1 Ответ

0 голосов
/ 18 ноября 2009

Вот решение для всех, кто ищет. По сути, скрипт uploadify отправляет имена файлов и уникальный ключ, которые он генерирует в коллекции форм. Вы можете сделать это, перебирая все клавиши. Приведенное ниже действие контроллера перебирает коллекцию allkeys формы, и если ключ не является папкой (параметр uploadify folder также передается в подборку форм для scriptCheck), он проверяет, существует ли файл. Если он существует, ключ и значение добавляются в словарь, который затем возвращается клиенту. Плагин 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);
    }
...