0
Webフォームにajaxとvb.netを含むファイルをアップロードしようとしています。私は現在、ajaxからの成功応答を得ていますが、実際にはバックエンドでブレークポイントを打つことはありません。アップロードされているコードやコードの実行が停止されていることはありません。これは初めての試みです。私はバックエンドをどのように扱うか、オンラインで見つかったものはすべて私の正確な仕様に適合していないことがわかりません。ファイルはvarbinaryとしてdbカラムに直接アップロードする必要があります。ほとんどすべてのファイルは256kb未満ですので、ファイルシステムに保存しないことに決めました。FormDataのAjaxポスティングは成功しましたが、VB.Net関数を打つことはありません
<input class="pull-left" type="file" id="fileToUpload"/>
<button type="button" class="btn btn-primary" data-action="uploadDoc">Upload</button>
uploadButton.on("click", function() {
var form = new FormData();
var inputFile = document.getElementById("fileToUpload");
form.append("file", inputFile.files[0]);
alert(inputFile.files.length);
$.ajax({
url: '../secure/shipments.aspx/UploadFile',
data: form,
processData: false,
contentType: false,
type: 'POST',
success: function (data) {
alert(data);
},
error: function (xhr, textStatus, errorThrown) {
alert("There was an error uploading the file. " + xhr.status + ': ' + errorThrown);
},
cache: false
});
});
<System.Web.Services.WebMethod()>
Public Shared Sub UploadFile()
Try
Dim file As HttpPostedFile = HttpContext.Current.Request.Files("file")
Dim fname As String = Path.GetFileName(file.FileName)
Dim ftype As String = file.ContentType
Dim sDatasource As String = String.Empty
Dim inputArray(flen) As Byte
Dim myStream As System.IO.Stream
If (Current.Request.Files.Count > 1) Then
file = HttpContext.Current.Request.Files("file")
fname = Path.GetFileName(file.FileName)
ftype = file.ContentType
flen = file.ContentLength
myStream = file.InputStream
'read the file into the byte array
myStream.Read(inputArray, 0, flen)
End If
If Not HttpContext.Current.Session.Contents("datasource") Is Nothing Then sDatasource = HttpContext.Current.Session.Contents("datasource").ToString()
Using con As New SqlConnection(sDatasource)
Using cmd As New SqlCommand
cmd.CommandText = "test_insertDoc"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("referenceno", 0)
cmd.Parameters.AddWithValue("doctype", ftype)
cmd.Parameters.AddWithValue("line", 0)
cmd.Parameters.Add("uploadedfile", SqlDbType.VarBinary, -1).Value = inputArray
cmd.Parameters.AddWithValue("customer", 0)
cmd.Parameters.AddWithValue("warehouse", 0)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
cmd.Dispose()
End Using
End Using
Catch ex As Exception
End Try
End Sub