Контрольный скрипт Jquery Uploadify
-
20-09-2019 - |
Вопрос
Я пытаюсь реализовать функцию проверки сценария загрузки в представлении 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);
?>
Решение
Вот решение для тех, кто ищет.По сути, сценарий загрузки отправляет имена файлов и уникальный ключ, который он генерирует, в коллекцию форм.Вы можете получить это, перебирая все клавиши.Действие контроллера, приведенное ниже, выполняет итерацию по коллекции всех ключей формы, и если ключ не является папкой (параметр папки загрузки также передается в коллекции форм для 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);
}