FranJun 0 Denunciar post Postado Junho 14, 2013 OI pessoal estou tentando fazer o Upload de uma foto e ao mesmo tempo fazer o cadastro no banco de dados... Aparentimento o código pra mim está correto... using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data.SqlClient; using System.Data; using System.IO; using System.IO.IOException; namespace TemperoMania.admin { public partial class cadastra_temperos : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btCadTemp_Click(object sender, EventArgs e) { //String de Conexão. string strConexao = ConfigurationManager.ConnectionStrings["TemperoMania"].ConnectionString; SqlConnection objConexao = new SqlConnection(strConexao); //definição do comando sql string comandoSQLInsert = "INSERT INTO produtos(idSubCategoria, nome_produto, desc_produto, valor_produto, img_produto) VALUES (@idSubCategoria, @nome_produto, @desc_produto, @valor_produto, @img_produto)"; //CADASTRANDO OS PRODUTOS try { //FAZENDO UPLOAD DA IMAGEM if (img_produto.HasFile) { try { if (img_produto.PostedFile.ContentType == "image/jpeg") { if (img_produto.PostedFile.ContentLength < 102400) { //string filename = Path.GetFileName(img_produto.FileName); string filename = Path.GetFileName(img_produto.FileName); img_produto.SaveAs(Server.MapPath("~/img/temperos/") + filename); //imgProduto.PostedFile.SaveAs(Server.MapPath(@"C:\Users\francisco.junior\Desktop\WebTemperoMania\WebTemperoMania\img\temperos\") + filename); mensagemImg.Text = "Arquivo enviado!"; } else mensagemImg.Text = "O arquivo tem que ser menos de 100 kb!"; } else mensagemImg.Text = "Apenas os ficheiros JPEG são aceitos!"; } catch (Exception ex) { mensagemImg.Text = "O arquivo não pôde ser carregado. O seguinte erro ocorreu: " + ex.Message; } } //Objeto SQLConnection e Objeto SQLCommand SqlCommand objComando = new SqlCommand(comandoSQLInsert, objConexao); //Adicionando o valor das textBox nos parametros do comando objComando.Parameters.Add(new SqlParameter("@idSubCategoria", this.idCategoria.SelectedItem.ToString())); objComando.Parameters.Add(new SqlParameter("@nome_produto", this.nome_produto.Text)); objComando.Parameters.Add(new SqlParameter("@desc_produto", this.desc_produto.Text)); objComando.Parameters.Add(new SqlParameter("@valor_produto", this.valor_produto.Text)); objComando.Parameters.Add(new SqlParameter("@imgProduto", this.img_produto.FileName.ToString())); //abre a conexao objConexao.Open(); //executa o comando com os parametros que foram adicionados acima objComando.ExecuteNonQuery(); //fecha a conexao objConexao.Close(); //Minha função para limpar os textBox LimpaCamos(); //Abaixo temos a ultlização de javascript para apresentar ao usuário um alert // referente ao msgbox Console.Write("<script>alert(Operação concluida !)</script>"); } catch { Console.Write("<script>alert(Operação não concluida !)</script>"); } finally { objConexao.Close(); } } private void LimpaCamos() { this.idCategoria.SelectedValue = ""; this.nome_produto.Text = ""; this.desc_produto.Text = ""; this.valor_produto.Text = ""; this.img_produto.FileName.ToString(); } } } E o erro era não estava encontrando o caminha da pasta para mandar o arquivo?? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 17, 2013 Veja o que isto esta retornando: Server.MapPath("~/img/temperos/") Provavelmente um caminho errado.Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Junho 17, 2013 Pra fazer o upload você precisa de um UploadFile, e não o Content.Length, você vai usar a sequencia UploadFile1.FileBytes em um array de Bytes (Byte[]) para fazer o upload do arquivo para o banco. Certifique-se de que seu campo no bd tem o tipo Image como dados. Compartilhar este post Link para o post Compartilhar em outros sites