0
ImはIFormFileからファイル名を取得しようとしたファイル名(asp.netコア)に沿ってドライブ文字を返しますが、それは、ドライブ文字と、それを返します。IFormFileは
Htmlのサイド:
<div class="small-4 columns">
<input type="button" class="button radiusdefined alert" value="Delete" name="deletecontractfile" id="deletecontractfile" style="display:none" />
</div>
<div class="small-4 columns">
<label id="selectedfilename"></label>
</div>
<div class="small-4 columns">
<label for="contractfileraw" class="button">Upload</label>
<input id="contractfileraw" name="contractfileraw" type="file" class="show-for-sr" />
</div>
JSサイド:
var contractfileraw = $("#contractfileraw");
$("#deletecontractfile").on("click", function() {
contractfileraw.replaceWith(contractfileraw = contractfileraw.clone(true));
$('#deletecontractfile').css('display', 'none');
$("#selectedfilename").text("");
});
$('#contractfileraw').change(function (e) {
var fileName = e.target.files[0].name;
$("#selectedfilename").text(fileName);
if(fileName.length > 0){
$('#deletecontractfile').css('display', 'block');
}
});
とコードビハインド:
public int Insert (IFormFile contractfileraw)
{
if(contractfileraw.Length > 0)
{
CFile file= new CFile();
Stream fileStream = contractfileraw.OpenReadStream();
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
buffer = ms.ToArray();
}
file.FileType = contractfileraw.ContentType;
file.FileName = ContentDispositionHeaderValue.Parse(contractfileraw.ContentDisposition).FileName.Trim('"');
file.FileSize = contractfileraw.Length;
file.FileContent = buffer;
となり、filenameにドライブパスが追加されます。これは、asp.netのコア1