2016-05-31 13 views
0

私はグーグルでたくさんのグーグルで一日中これを整理しようとしていましたが、ほとんど効果がありませんでしたので、読んで助けてください。 ashxでクエリ文字列変数を取得しようとしています

は、私は、ユーザーがファイルを選択し、アマゾンのバケットにアップロードすることができるシンプルなページを持って、最初のページには、次のようになります。

var checkError = false; 
$(window).load(
    function() { 
     $("#<%=FileImages.ClientID %>").fileUpload({ 
      'fileSizeLimit': '100MB', 
      'uploader': 'scripts/uploader.swf', 
      'cancelImg': 'images/cancel.png', 
      'buttonText': 'Upload Files', 
      'script': 'UploadVB.ashx?gid=56', 
      'folder': 'uploads', 
      'multi': true, 
      'auto': true, 
      'onAllComplete': function (uploads) { 
       if (!checkError) { 
        location.href = "finished"; 
       } 
      }, 
      'onComplete': function (event, ID, fileObj, response, data) { 
       if (200 != parseInt(response)) { 
        checkError = true; 
        $('#FileImages' + ID).addClass('uploadifyError'); 
        $('#FileImages' + ID + ' .percentage').text(' - ' + response); 

        return false; 
       } 
      } 
     }); 
    } 

)。

gid=56に注意してください。その後UploadVB.ashxに経由でファイルを送信し、これは次のようになります。

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
    Dim awsRegion As Amazon.RegionEndpoint = Amazon.RegionEndpoint.EUWest1 
    Dim client As New AmazonS3Client(System.Configuration.ConfigurationManager.AppSettings("AWSAccessKey").ToString(), System.Configuration.ConfigurationManager.AppSettings("AWSSecretKey").ToString(), awsRegion) 
    Dim fileID As String = Guid.NewGuid().ToString("N") 
    Dim postedFile As HttpPostedFile = context.Request.Files("Filedata") 

    Dim galleryid = context.Request.QueryString("gid") 

    Try 
     Dim filename As String = Path.GetFileName(postedFile.FileName) 
'### I WANT TO SUBMIT THE FILENAME AND ID INTO A TABLE HERE ###### 
    AddPortfolioPhoto(filename, Convert.ToInt16(galleryid)) 
    '################################################################# 
     Dim S3_KEY As [String] = filename.Replace(" ", "") 
     Dim request As New PutObjectRequest() 
     With request 
      .BucketName = System.Configuration.ConfigurationManager.AppSettings("AWSBucketName").ToString() 
      .Key = S3_KEY 
      .InputStream = postedFile.InputStream 
     End With 

     client.PutObject(request) 
     context.Response.Write("200") 
     context.Response.StatusCode = 200 
    Catch ex As Exception 
     context.Response.Write("AWS ERROR :: " + ex.Message) 
    End Try 
End Sub 
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable 
    Get 
     Return False 
    End Get 
End Property 

は、それだけで何もしない上に、私はこの行を削除した場合、私は、これを実行するたびに:

AddPortfolioPhoto(filename, Convert.ToInt16(galleryid)) 

それが動作します偉大だが、重要なのは、私はこれをデータベースに幾分か挿入して取得するだけで、gid値を取得することはできないようだ。

ご協力いただきまして誠にありがとうございます。あなたの助けを借りて、私はこれの底に得ていることのように

Public Shared Sub AddPortfolioPhoto(ByVal fn As String, gid As Integer) 

    Dim Writer As New Data.SqlClient.SqlCommand 
    Writer.CommandType = Data.CommandType.StoredProcedure 
    Writer.CommandText = "BCMS_AddGalleryPhoto" 
    Writer.Connection = New Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings("sqlstr")) 
    Writer.Parameters.AddWithValue("@imgstr", Data.SqlTypes.SqlString.Null).Value = fn 
    Writer.Parameters.AddWithValue("@galleryid", Data.SqlTypes.SqlInt32.Null).Value = gid 
    Writer.Parameters.AddWithValue("@so", Data.SqlTypes.SqlInt32.Null).Value = 0 
    Writer.Parameters.AddWithValue("@featured", Data.SqlTypes.SqlInt32.Null).Value = 0 
    Writer.Prepare() 
    Writer.Connection.Open() 
    Writer.ExecuteNonQuery() 
    Writer.Connection.Close() 

End Sub 
+0

context.Request.QueryString( "gid")の値は何ですか? –

+0

これは常に整数です。この場合は、次のようになります。56 –

+0

エラーはAddPortfolioメソッドから発生しています。あなたはそのコードを投稿できますか? –

答えて

0

が見える、私は(56)期待していた値が、私は実際に私が実際に同じ変数に「アップロード」を取得して、取得したものではありませんでしたこのメソッドに文字列を送ることは決してうまくいきませんでした。@ matt-dot-netの提案と感謝のために感謝しています。

関連する問題