Pergunta

Estou tentando implementar o recurso de verificação do upload em uma exibição ASP.NET MVC, mas não posso determinar qual é a chave que devo usar no lado do controlador. Abaixo está o script PHP, mas não estou muito familiarizado com o PHP e não consigo determinar o que o PHP está retirando da httprequest. Alguém implementou isso? A documentação é um pouco escassa (como em inexistente).

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

Solução

Aqui está a solução para quem procura. Basicamente, o script de uploads envia os nomes de arquivos e uma chave exclusiva que ele gera na coleção de formulários. Você pode fazer isso iterando os Allkeys. A ação do controlador abaixo itera através da coleção Formulário Allkeys e se a chave não for pasta (o parâmetro da pasta Uploadify também será passado no formsCollection for scriptCheck), ele verifica se o arquivo já existe. Se existir, a chave e o valor são adicionados a um dicionário que é retornado ao cliente. O plug -in do Uploady alertará o usuário que o arquivo existe e dará a eles a oportunidade de cancelar o upload. Espero que isso ajude outra pessoa a sair.

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);
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top