How do I go about passing either a querystring or variables into my CustomfileUploadStreamProvider?
I see in the docs that UploadHttpRequest as a QueryStrin gattribute, however I only get UploadProvider Information not my querystring
QueryString NameValueCollection Gets the collection of HTTP query string variables.
Web.Config:
<slickUpload>
<uploadProfiles>
<add name="noOverwrite">
<uploadStreamProvider type="MyCustomFileUploadStreamProvider, App_Code" location="~/Uploaded" QU="" />
</add>
<add name="Overwrite">
<uploadStreamProvider type="MyCustomFileUploadStreamProvider, App_Code" location="~/Uploaded" existingAction="Overwrite"/>
</add>
</uploadProfiles>
</slickUpload>
Here is my Custom Stream:
Imports System
Imports System.IO
Imports System.Web.Configuration
Imports Krystalware.SlickUpload
Imports Krystalware.SlickUpload.Web
Imports Krystalware.SlickUpload.Configuration
Imports Krystalware.SlickUpload.Storage
Public Class MyCustomFileUploadStreamProvider
Inherits Krystalware.SlickUpload.Storage.FileUploadStreamProvider
Private _location As String
Public Sub New(ByVal settings As UploadStreamProviderElement)
MyBase.New(settings)
_location = settings.Parameters("location")
End Sub
Public Overrides Function GetWriteStream(ByVal file As Krystalware.SlickUpload.UploadedFile) As System.IO.Stream
'Return MyBase.GetWriteStream(file)
file.ServerLocation = GetServerFileName(file)
Dim imp As Impersonate = New Impersonate()
If imp.StartImpersonation(WebConfigurationManager.AppSettings("USER"), WebConfigurationManager.AppSettings("DOMAIN"), WebConfigurationManager.AppSettings("PASS")) Then
Dim fileS As FileStream = Nothing
Try
fileS = System.IO.File.OpenWrite(file.ServerLocation)
Return fileS
Catch ex As Exception
If fileS IsNot Nothing Then
fileS.Dispose()
End If
Return Nothing
End Try
End If
Return Nothing
End Function
Public Overrides Function GetServerFileName(ByVal file As UploadedFile) As String
Dim fileName As String = GenerateFileName(file)
Return Path.Combine(HttpContext.Current.Server.MapPath(_location), fileName)
End Function
Public Function GenerateFileName(ByVal file As UploadedFile) As String
Dim fileName As String = file.ClientName
Dim InvalidChars As String() = New String() {"$", "&", "+", ",", "/", ";", _
":", "=", "?", "@", "<", ">", _
"{", "}", "|", "\", "^", "~", _
"[", "]", "`", " "}
For Each s As String In InvalidChars
fileName = fileName.Replace(s, "_")
Next
fileName = fileName.Replace("..", ".")
fileName = fileName.Replace("__", "_")
Return System.DateTime.Now.ToString("yyyyMMdd_hhmmss_") + fileName
End Function
End Class