Usuário com melhor resposta
salvar arquivo anexo em uma pasta do sistema no c#

Pergunta
-
Amigos,
tenho o seguinte cenário, em minha aplicação preciso fazer com que o usuário busque em seu pc uma imagem qualquer, até aí blz, estou usando OpenFileDialog.
Porém quando vou salvar a imagem, a informação que salvo no banco é só o caminho de onde encontra-se essa imagem.
quero saber se tem como eu pegar essa imagem, copiar ela e colar em uma pasta especifica da minha aplicação, ou seja, sempre que for anexada uma imagem ela vai ser armazenada na pasta do sistema e não no benco.
Não sei se é o certo, mas eu acho que seria um ctrl + c no diretório do pc e um ctrl +v na pasta do meu sistema, porém, não estou conseguindo fazer isso.
Alguém pode me ajudar ?
Respostas
-
Olá, não me atentei que era uma aplicação windows.
Vc pode fazer assim no click do FileOpenDialog:
Só um detalhe, se a aplicação está instalada na máquina do cliente e você quer jogar em uma pasta no servidor, terá que passar um caminho de rede. Geralmente como "\\Servidor\PastaCompartilhada\". Se a aplicação está instalada na máquina do cliente, você pode utilizar Environment.CurrentDirectory para saber a pasta que a sua aplicação está instalada. É o equivalente ao Server.MapPath("~"); para web.
string origem = OpenFileDialog1.FileName;
string destino = string.Concat("Caminho do server",System.IO.Path.GetFileName(origem));
System.IO.File.Copy(origem,destino);Thiago Jacometti Microsoft Developer @TMJSistemas | Skype:tmattarwebco | Email:thiago@tmjsistemas.com.br | MSN: tm.jacometti@hotmail.com
- Sugerido como Resposta Thiago Jacometti - tmjsistemas.com.br terça-feira, 26 de março de 2013 20:00
- Marcado como Resposta William John Adam TrindadeModerator quinta-feira, 22 de agosto de 2013 20:18
Todas as Respostas
-
-
-
Cara,
Porque ao invés de salvar o caminho no banco ou a imagem em outro diretório, você não salva a própria imagem no banco?
Segue exemplo em uma outra thread que eu respondi sobre como inserir arquivos no banco:
http://social.msdn.microsoft.com/Forums/pt-BR/vsgeralpt/thread/7d82299f-812c-4810-863a-04665e463b31
Mas para não deixar de responder a sua pergunta sobre como copiar arquivo, você vai precisar trabalhar com System.IO
Você tem duas opções, mover ou copiar o arquivo:
File.Move File.Copy
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos segunda-feira, 25 de março de 2013 22:34
-
Olá, espero que isso aqui ajude:
string arquivo = System.IO.Path.GetFileName(txtArquivo.PostedFile.FileName); string pathDestino = Server.MapPath("~") + @"\Content\ImportacaoConta\"; txtArquivo.PostedFile.SaveAs(string.Concat(pathDestino, arquivo));
Thiago Jacometti Microsoft Developer @TMJSistemas | Skype:tmattarwebco | Email:thiago@tmjsistemas.com.br | MSN: tm.jacometti@hotmail.com
- Sugerido como Resposta Thiago Jacometti - tmjsistemas.com.br terça-feira, 26 de março de 2013 15:13
-
Olá, espero que isso aqui ajude:
string arquivo = System.IO.Path.GetFileName(txtArquivo.PostedFile.FileName); string pathDestino = Server.MapPath("~") + @"\Content\ImportacaoConta\"; txtArquivo.PostedFile.SaveAs(string.Concat(pathDestino, arquivo));
Thiago Jacometti Microsoft Developer @TMJSistemas | Skype:tmattarwebco | Email:thiago@tmjsistemas.com.br | MSN: tm.jacometti@hotmail.com
fiz no codigo como vc explicou, a mensagem foi: "Parte do caminho não encontrado". -
Olá, não me atentei que era uma aplicação windows.
Vc pode fazer assim no click do FileOpenDialog:
Só um detalhe, se a aplicação está instalada na máquina do cliente e você quer jogar em uma pasta no servidor, terá que passar um caminho de rede. Geralmente como "\\Servidor\PastaCompartilhada\". Se a aplicação está instalada na máquina do cliente, você pode utilizar Environment.CurrentDirectory para saber a pasta que a sua aplicação está instalada. É o equivalente ao Server.MapPath("~"); para web.
string origem = OpenFileDialog1.FileName;
string destino = string.Concat("Caminho do server",System.IO.Path.GetFileName(origem));
System.IO.File.Copy(origem,destino);Thiago Jacometti Microsoft Developer @TMJSistemas | Skype:tmattarwebco | Email:thiago@tmjsistemas.com.br | MSN: tm.jacometti@hotmail.com
- Sugerido como Resposta Thiago Jacometti - tmjsistemas.com.br terça-feira, 26 de março de 2013 20:00
- Marcado como Resposta William John Adam TrindadeModerator quinta-feira, 22 de agosto de 2013 20:18