2016-10-08 14 views
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

enter image description here

答えて

関連する問題