Добавление изображения в базу данных SQL с использованием ASP.Net Core с React - PullRequest
1 голос
/ 08 марта 2019

Итак, я искал в Интернете решение и пробовал разные реализации, но все еще не могу сохранить изображение в моей базе данных sql.

Заранее спасибо ... Я знаю, что естьресурсов много но я так и не смог найти как это сделать.

В настоящее время наш sql-тип для изображения: varbinary (max), но я также пробовал тип изображения безуспешно.

Front-end в React, который у меня есть (обернут в функцию отправки):

// Upload user's signature
url = `api/users/uploadsignature?id=${id}`
let formData = new FormData();

formData.append('signature', this.state.signature, this.state.signature.name);

response = await fetch(url, {
   method: 'POST',
   body: formData,
});

Это в разделе формы:

<div className="form-group">
  <label htmlFor="roleSelect">Upload Signature:</label>
  <input
    style={{ display: 'none'}}
    id="signature"
    name="signature"
    type="file"
    className="form-control"
    onChange={this.signatureOnChange}
    ref={fileInput => this.fileInput = fileInput}
  />
  <button type="button" className="btn btn-secondary" onClick={() => this.fileInput.click()}>Pick Image</button>
</div>

Back-endЯдро Asp.Net:

[HttpPost("[action]")]
public IActionResult UploadSignature(int id)
{
    var files = HttpContext.Request.Form.Files;
    try { 
        String query = $"UPDATE userAcct set signature='{files[0]}' WHERE userAcct.id={id}";
        String sql = @query;

        dt = sqlConnection.Connection(sql);

        return Ok();
    }
    catch (Exception e)
    {
        return BadRequest(new { Error = e });
    }
}

Функция sqlConnection:

public DataTable Connection(String sql)
{
    SqlConnection con = new SqlConnection(connectionString);

    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = new SqlCommand(sql, con);   

    da.Fill(dt);

    return dt;
}
...