私はwebcam.jsを使用してasp.net Webフォームアプリケーションを使用してウェブカメラから写真を取得しています。問題は、 "ID"クエリ文字列に基づいてファイル名を取得したいということです。しかし、私が「シュート」ボタンをクリックするたびに、クエリーストリングの値は何もありません。ポストバック後のクエリーストリングに値がありません
は、ここに私の完全なHTMLです:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Coba.aspx.vb" Inherits="myWebcam.Coba" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src='<%=ResolveUrl("~/Plugin/jquery.webcam.js")%>' type="text/javascript"></script>
<script type="text/javascript">
var pageUrl = '<%=ResolveUrl("~/Coba.aspx")%>';
$(function(){
$("#Camera").webcam({
width: 320,
height: 240,
mode: "save",
swffile: '<%=ResolveUrl("Plugin/jscam.swf")%>',
onTick: function() { },
onSave: function() {
},
onCapture: function() {
webcam.save(pageUrl);
},
debug: function() { },
onLoad: function() { }
});
});
function Capture() {
webcam.capture();
return false;
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>Index</h2>
<input type="button" value="Shoot!" onclick="Capture()" />
<div id="Camera"></div>
</div>
</form>
</body>
</html>
そして、ここに私のasp.net分離コードです:
Imports System.IO
Imports System.Web.Services
Public Class Coba
Inherits System.Web.UI.Page
Public sID As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
sID = Request.QueryString("id")
If Not Page.IsPostBack Then
Capture(Trim(sID))
End If
End Sub
Public Sub Capture(ByVal mID As String)
Dim stream = Request.InputStream
Dim dump As String
If stream.Length > 0 Then
Using reader = New StreamReader(stream)
dump = reader.ReadToEnd()
End Using
Dim path = Server.MapPath("~/" & Trim(mID) & ".jpg")
System.IO.File.WriteAllBytes(path, String_To_Bytes2(dump))
End If
End Sub
Private Function String_To_Bytes2(strInput As String) As Byte()
Dim numBytes As Integer = (strInput.Length)/2
Dim bytes As Byte() = New Byte(numBytes - 1) {}
For x As Integer = 0 To numBytes - 1
bytes(x) = Convert.ToByte(strInput.Substring(x * 2, 2), 16)
Next
Return bytes
End Function
End Class
私がページを初めて実行、私はからの "ID" の値を取得することができますクエリ文字列。シュートボタンがポストバックをトリガーし、 "キャプチャー"サブを実行しますが、 "ID"クエリーストリングは何も返しません。
この問題の解決策はありますか?
私はあなたのコードを正しく読んでいるなら、あなたは後の 'POST'backのために元の' queryString'データを保持していません。 'ViewState'などを使って、' hidden'フィールドを設定することから、 'POST'backか' GET'かのように_subsequent_リクエストで(再び)送ることができます。 )。 – EdSF