Jquery Uploadify checkscript
-
20-09-2019 - |
Domanda
Sto cercando di implementare la funzionalità di checkscript uploadify in una vista mvc asp.net ma non riesco a determinare ciò che la chiave è dovrei usare sul lato del controller. Di seguito è riportato lo script PHP, ma io non sono molto familiare con php e non riesco a determinare ciò che PHP è raschiando fuori dalla HttpRequest. Qualcuno ha implementato questo? La documentazione è un po 'scarsa (come in inesistente).
$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);
?>
Soluzione
Ecco la soluzione per chiunque la ricerca. Fondamentalmente lo script uploadify invia i nomi di file e una chiave unica che genera nella collezione forme. È possibile ottenere a questo scorrendo AllKeys. L'azione di controllo sotto itera attraverso la raccolta di forma AllKeys e se la chiave non è la cartella (parametro cartella uploadify è anche superato nel FormsCollection per ScriptCheck) controlla per vedere se il file esiste già. Se esiste la chiave e il valore si aggiungono a un dizionario che viene poi restituito al client. Il plugin uploadify poi avvisare l'utente che esiste il file e dare loro l'opportunità di annullare il caricamento. Spero che questo aiuti qualcun altro fuori.
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);
}