Pergunta

Quando userA envia um arquivo, seus arquivos serão enviados para folderA, quando userB, para folderB, e assim por diante. Roles / Profiles em ASP.NET. Pastas serão pré-existente. Qualquer um?

Foi útil?

Solução

Você provavelmente vai querer mão-código que. Não há nada intrínseco ao ASP.NET para o gerenciamento de arquivos do usuário. No entanto, o código para fazê-lo deve ser relativamente fácil. Assumindo que o nome de usuário é única e nunca muda, você pode combinar o nome de usuário com um caminho (uso Path.Combine) e fazer o upload para esse local. Também gostaria de bloquear esse local para que ninguém mais pode acessá-lo.

Outras dicas

A maneira que eu tenho feito isso no passado é usar uma pasta base de upload (uploads Say) e em que pasta criar uma pasta usando o ID do usuário do DB. Assim, a estrutura seria .. \ uploads \ 145 para o usuário com um ID de usuário de 145.

A primeira coisa que o meu código faz é verificar para ver se a pasta existe e se não for seguida, chama uma Directory.Create () (ou qualquer que seja a sintaxe é) para criar a pasta antes de carregar.

Mais informações que você pode encontrar útil: Eu também renomear o arquivo usando um GUID que evita conflitos de nome se eles carregar 2 arquivos com o mesmo nome. A desvantagem é que você normalmente terá que manter uma tabela com o nome do arquivo original e o nome do arquivo físico (GUID).

Você pode apenas verificar a existência da pasta e criá-lo para o usuário se ele não existe, mas há implicações de segurança para isso. Você também pode querer experimentar e armazenar dados em um banco de dados e amarrá-lo a um usuário .. isso depende do que você está permitindo que os usuários fazer upload eu acho.

Existem algumas maneiras que você pode fazer isso:

Usando a autenticação de formulários

Se você usar a autenticação de formulários, você pode definir uma convenção na qual o usuário ou a ID de um usuário pode servir como base para um caminho no seu servidor onde o usuário pode fazer upload de um arquivo. Note-se que o usuário não terá acesso direto para essa pasta:., O usuário deve ser capaz de fazer o download dos arquivos do seu servidor através de sua aplicação web, bem

Usando a autenticação do Windows

Se você usa o Windows (por exemplo, ActiveDirectory) autenticação, você pode fornecer o acesso do usuário tanto para a localização física da pasta e através de uma aplicação web.

P.S. - Fico feliz em vê-lo aqui Marlon

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top