2016-05-31 4 views
0

Ich habe versucht, den ganzen Tag mit viel Googeln, aber mit wenig Wirkung zu sortieren, also danke im Voraus, wenn Sie lesen und helfen können.Versucht, eine Querystring-Variable mit einem Aschx zu bekommen

ich eine einfache Seite haben, die ein Benutzer Dateien auswählen und laden zu einem Amazon Eimer, sieht die erste Seite wie folgt aus:

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; 
       } 
      } 
     }); 
    } 

);

Notiere die gid=56. Er sendet dann die Dateien über zu UploadVB.ashx und dies sieht wie folgt aus:

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 

Jedes Mal, wenn ich diese laufen über es funktioniert einfach nichts tun, wenn ich diese Zeile entfernen:

AddPortfolioPhoto(filename, Convert.ToInt16(galleryid)) 

es funktioniert Großartig, aber es ist wichtig, dass ich es irgendwie in die Datenbank einfüge und ich kann einfach nicht in der Lage sein, den GID-Wert zu erfassen.

Jede Hilfe wird sehr geschätzt.

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

Was ist der Wert von context.Request.QueryString ("gid")? –

+0

Es ist immer eine ganze Zahl, in diesem Fall: 56 –

+0

Der Fehler kommt dann von AddPortfolio-Methode. Kannst du diesen Code posten? –

Antwort

0

Sieht aus wie mit Ihrer Hilfe, die ich auf den Grund dieses bekommen haben kann, den Wert Ich erwartete (56) war nicht das, was ich tatsächlich bekam, war ich eigentlich „uploads“ in der gleichen Variable bekommen also würde das Senden einer Zeichenkette an diese Methode nie funktionieren, danke @ matt-dot-net für das Vorschlagen und danke Andrew Morton für den Hinweis auf Entsorgen, ich werde das eher verwenden als zu schließen.

Verwandte Themen