subir servidor net mvc imagen datos cargar asp archivos archivo c# file-upload webclient fileserver

servidor - subir imagen c#



Carga de archivos al servidor de archivos mediante la clase webclient (3)

Solo usa

File.Copy(filepath, "////192.168.1.28//Files");

Un archivo compartido de Windows expuesto a través de una ruta UNC se trata como parte del sistema de archivos, y no tiene nada que ver con la web.

Las credenciales utilizadas serán las del proceso de trabajo ASP.NET o cualquier suplantación que haya habilitado. Si puede modificar esos para hacerlo bien, esto se puede hacer.

Puede tener problemas porque está usando la dirección IP en lugar del nombre del servidor (la configuración de Windows Trust evita que salga del dominio; al usar IP, está ocultando los detalles de cualquier dominio). Si es posible, ¡use el nombre del servidor!

Si no está en el mismo dominio de Windows y está tratando de usar una cuenta de dominio diferente, deberá especificar el nombre de usuario como "[dominio_o_maquina] / [nombre de usuario]".

Si necesita especificar credenciales explícitas, tendrá que buscar en la codificación una solución de suplantación .

Actualmente tengo una aplicación que recibe un archivo cargado desde mi aplicación web. Ahora necesito transferir ese archivo a un servidor de archivos que esté ubicado en la misma red (sin embargo, puede que este no sea siempre el caso).

Estaba intentando usar la clase webclient en C # .NET.

string filePath = "C://test//564.flv"; try { WebClient client = new WebClient(); NetworkCredential nc = new NetworkCredential(uName, password); Uri addy = new Uri("////192.168.1.28//Files//test.flv"); client.Credentials = nc; byte[] arrReturn = client.UploadFile(addy, filePath); Console.WriteLine(arrReturn.ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); }

La máquina ubicada en 192.168.1.28 es un servidor de archivos y tiene un c: / Files compartido. A partir de ahora estoy recibiendo un error de Nombre de usuario o contraseña incorrectos de inicio de sesión, pero puedo abrir el explorador y escribir correctamente en esa ruta de acceso. También puedo iniciar sesión utilizando un escritorio remoto, así sé que la cuenta de usuario funciona.

Alguna idea sobre este error? ¿Es posible transferir un archivo directamente así? Con la clase webclient o tal vez alguna otra clase?


cuando abre manualmente la dirección IP (a través del comando EJECUTAR o mapeando una unidad de red), su PC enviará sus credenciales a través del conducto y el servidor de archivos recibirá la autorización del DC.

Cuando ASP.Net lo intente, intentará utilizar el usuario trabajador de IIS (a menos que la suplantación esté activada, lo que mostrará una lista de algunos otros problemas). Tradicionalmente, el usuario trabajador de IIS no tiene autorización para trabajar en todos los servidores (o incluso en otras carpetas en el servidor web).


namespace FileUpload { public partial class Form1 : Form { string fileName = ""; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string path = ""; OpenFileDialog fDialog = new OpenFileDialog(); fDialog.Title = "Attach customer proposal document"; fDialog.Filter = "Doc Files|*.doc|Docx File|*.docx|PDF doc|*.pdf"; fDialog.InitialDirectory = @"C:/"; if (fDialog.ShowDialog() == DialogResult.OK) { fileName = System.IO.Path.GetFileName(fDialog.FileName); path = Path.GetDirectoryName(fDialog.FileName); textBox1.Text = path + "//" + fileName; } } private void button2_Click(object sender, EventArgs e) { try { WebClient client = new WebClient(); NetworkCredential nc = new NetworkCredential("erandika1986", "123"); Uri addy = new Uri(@"//192.168.2.4/UploadDocs/"+fileName); client.Credentials = nc; byte[] arrReturn = client.UploadFile(addy, textBox1.Text); MessageBox.Show(arrReturn.ToString()); } catch (Exception ex1) { MessageBox.Show(ex1.Message); } } } }