Итак, я искал в Интернете решение и пробовал разные реализации, но все еще не могу сохранить изображение в моей базе данных 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;
}