Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Help...

  1. #1

    Help...

    Vi prego Aiutatemi.......
    Sono nuovo del forum e ho un enorme problema che non so come fare a risolvere.....

    Ho recuperato da internet, uno script asp che mi permette di uplodare un file.....
    Esserndo riuscito nel contesto a far funzionare uno script, ho un problema che non so come risolvere...

    Voglio che lo script mi cambi i nomi dei file come da record gia inserito in database e richiamato tramite recordser asp.Questo è il codice della pagina principale

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    option explicit
    Response.Expires = -1
    Server.ScriptTimeout = 600
    %>


    <%
    Dim Recordset1ultimo
    Dim Recordset1ultimo_numRows

    Set Recordset1ultimo = Server.CreateObject("ADODB.Recordset")
    Recordset1ultimo.ActiveConnection = MM_db1_STRING
    Recordset1ultimo.Source = "SELECT max(Cod_Art) as massimo FROM Barche"
    Recordset1ultimo.CursorType = 0
    Recordset1ultimo.CursorLocation = 2
    Recordset1ultimo.LockType = 1
    Recordset1ultimo.Open()

    Recordset1ultimo_numRows = 0
    %>
    <%


    ' ************************************************** **
    ' Change the value of the variable below to the pathname
    ' of a directory with write permissions, for example "C:\Inetpub\wwwroot"
    Dim uploadsDirVar
    uploadsDirVar = Server.mappath("/public")

    ' ************************************************** **

    ' Note: this file uploadTester.asp is just an example to demonstrate
    ' the capabilities of the freeASPUpload.asp class. There are no plans
    ' to add any new features to uploadTester.asp itself. Feel free to add
    ' your own code. If you are building a content management system, you
    ' may also want to consider this script: http://www.webfilebrowser.com/

    function OutputForm()
    %>
    <form name="frmSend" method="POST" enctype="multipart/form-data" action="Inserisci2.asp" onSubmit="return onSubmitForm();">
    File 1: <input name=attach1 type=file size=35>

    File 2: <input name=attach2 type=file size=35>

    File 3: <input name=attach3 type=file size=35>

    File 4: <input name=attach4 type=file size=35>



    <input style="margin-top:4" type=submit value="Upload">
    </form>
    <%
    end function

    function TestEnvironment()
    Dim fso, fileName, testFile, streamTest
    TestEnvironment = ""
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    if not fso.FolderExists(uploadsDirVar) then
    TestEnvironment = "Folder " & uploadsDirVar & " does not exist.
    The value of your uploadsDirVar is incorrect. Open uploadTester.asp in an editor and change the value of uploadsDirVar to the pathname of a directory with write permissions."
    exit function
    end if
    fileName = uploadsDirVar & "\test.txt"
    on error resume next
    Set testFile = fso.CreateTextFile(fileName, true)
    If Err.Number<>0 then
    TestEnvironment = "Folder " & uploadsDirVar & " does not have write permissions.
    The value of your uploadsDirVar is incorrect. Open uploadTester.asp in an editor and change the value of uploadsDirVar to the pathname of a directory with write permissions."
    exit function
    end if
    Err.Clear
    testFile.Close
    fso.DeleteFile(fileName)
    If Err.Number<>0 then
    TestEnvironment = "Folder " & uploadsDirVar & " does not have delete permissions, although it does have write permissions.
    Change the permissions for IUSR_computername on this folder."
    exit function
    end if
    Err.Clear
    Set streamTest = Server.CreateObject("ADODB.Stream")
    If Err.Number<>0 then
    TestEnvironment = "The ADODB object Stream is not available in your server.
    Check the Requirements page for information about upgrading your ADODB libraries."
    exit function
    end if
    Set streamTest = Nothing
    end function

    function SaveFiles
    Dim Upload, fileName, fileSize, ks, i, fileKey

    Set Upload = New FreeASPUpload
    Upload.Save(uploadsDirVar)

    SaveFiles = ""
    ks = Upload.UploadedFiles.keys
    if (UBound(ks) <> -1) then
    SaveFiles = "File Caricato con Successo: "
    for each fileKey in Upload.UploadedFiles.keys
    SaveFiles = SaveFiles & Upload.UploadedFiles(fileKey).FileName & " (" & Upload.UploadedFiles(fileKey).Length & "B) "
    next
    else
    SaveFiles = "The file name specified in the upload form does not correspond to a valid file in the system."
    end if
    end function
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Upload File Immagine</title>
    <script>
    function onSubmitForm() {
    var formDOMObj = document.frmSend;
    if (formDOMObj.attach1.value == "" )
    alert("Please press the browse button and pick a file.")
    else
    return true;
    return false;
    }
    </script>

    </HEAD>

    <BODY>

    [img]../Immagini/Banner.jpg[/img]



    <div style="border-bottom: #A91905 2px solid;font-size:16">Upload File Imbarcazione </div>
    <%
    Dim diagnostics
    if Request.ServerVariables("REQUEST_METHOD") <> "POST" then
    diagnostics = TestEnvironment()
    if diagnostics<>"" then
    response.write "<div style=""margin-left:20; margin-top:30; margin-right:30; margin-bottom:30;"">"
    response.write diagnostics
    response.write "

    Per correggere il Problema, Ricarica la Pagina."
    response.write "</div>"
    else
    response.write "<div style=""margin-left:150"">"
    OutputForm()
    response.write "</div>"
    end if
    else
    response.write "<div style=""margin-left:150"">"
    OutputForm()
    response.write SaveFiles()
    response.write "

    </div>"
    end if

    %>

    <div style="border-top: #A91905 2px solid;font-size:10">
    <p align="center">Torna in Redazione</p>


    [img]../Immagini/Under.jpg[/img]</p>
    </div>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    </body>
    </html>
    <%
    Recordset1ultimo.Close()
    Set Recordset1ultimo = Nothing
    %>



    Praticamente,così funziona, ma mi fa l'upload del file esattamente come è il file originale....
    Vorrei che il file venisse rinominato tramite questa stringa
    1° File
    "Recordset1ultimo.Fields.Item("massimo").Value & ".jpg"
    2° File
    "Recordset1ultimo.Fields.Item("massimo").Value & "_1.jpg"
    3° File
    "Recordset1ultimo.Fields.Item("massimo").Value & "_2.jpg"
    4° File
    "Recordset1ultimo.Fields.Item("massimo").Value & "_3.jpg"

    Vi Prego Aiutatemi....
    Ho anche msn all'indirizzo clio2006@hotmail.it

  2. #2

    Ecco la seconda Pagina

    Dimenticavo.....
    questa è la seconda pagina "include"

    <%


    Class FreeASPUpload
    Public UploadedFiles
    Public FormElements

    Private VarArrayBinRequest
    Private StreamRequest
    Private uploadedYet

    Private Sub Class_Initialize()
    Set UploadedFiles = Server.CreateObject("Scripting.Dictionary")
    Set FormElements = Server.CreateObject("Scripting.Dictionary")
    Set StreamRequest = Server.CreateObject("ADODB.Stream")
    StreamRequest.Type = 1 'adTypeBinary
    StreamRequest.Open
    uploadedYet = false
    End Sub

    Private Sub Class_Terminate()
    If IsObject(UploadedFiles) Then
    UploadedFiles.RemoveAll()
    Set UploadedFiles = Nothing
    End If
    If IsObject(FormElements) Then
    FormElements.RemoveAll()
    Set FormElements = Nothing
    End If
    StreamRequest.Close
    Set StreamRequest = Nothing
    End Sub

    Public Property Get Form(sIndex)
    Form = ""
    If FormElements.Exists(LCase(sIndex)) Then Form = FormElements.Item(LCase(sIndex))
    End Property

    Public Property Get Files()
    Files = UploadedFiles.Items
    End Property

    'Calls Upload to extract the data from the binary request and then saves the uploaded files
    Public Sub Save(path)
    Dim streamFile, fileItem

    if Right(path, 1) <> "\" then path = path & "\"

    if not uploadedYet then Upload

    For Each fileItem In UploadedFiles.Items
    Set streamFile = Server.CreateObject("ADODB.Stream")
    streamFile.Type = 1
    streamFile.Open
    StreamRequest.Position=fileItem.Start
    StreamRequest.CopyTo streamFile, fileItem.Length
    streamFile.SaveToFile path & fileItem.FileName, 2
    streamFile.close
    Set streamFile = Nothing
    fileItem.Path = path & fileItem.FileName
    Next
    End Sub

    Public Function SaveBinRequest(path) ' For debugging purposes
    StreamRequest.SaveToFile path & "\debugStream.bin", 2
    End Function

    Public Sub DumpData() 'only works if files are plain text
    Dim i, aKeys, f
    response.write "Form Items:
    "
    aKeys = FormElements.Keys
    For i = 0 To FormElements.Count -1 ' Iterate the array
    response.write aKeys(i) & " = " & FormElements.Item(aKeys(i)) & "
    "
    Next
    response.write "Uploaded Files:
    "
    For Each f In UploadedFiles.Items
    response.write "Name: " & f.FileName & "
    "
    response.write "Type: " & f.ContentType & "
    "
    response.write "Start: " & f.Start & "
    "
    response.write "Size: " & f.Length & "
    "
    Next
    End Sub

    Private Sub Upload()
    Dim nCurPos, nDataBoundPos, nLastSepPos
    Dim nPosFile, nPosBound
    Dim sFieldName, osPathSep, auxStr

    'RFC1867 Tokens
    Dim vDataSep
    Dim tNewLine, tDoubleQuotes, tTerm, tFilename, tName, tContentDisp, tContentType
    tNewLine = Byte2String(Chr(13))
    tDoubleQuotes = Byte2String(Chr(34))
    tTerm = Byte2String("--")
    tFilename = Byte2String("filename=""")
    tName = Byte2String("name=""")
    tContentDisp = Byte2String("Content-Disposition")
    tContentType = Byte2String("Content-Type:")

    uploadedYet = true

    VarArrayBinRequest = Request.BinaryRead(Request.TotalBytes)

    nCurPos = FindToken(tNewLine,1) 'Note: nCurPos is 1-based (and so is InstrB, MidB, etc)

    If nCurPos <= 1 Then Exit Sub

    'vDataSep is a separator like -----------------------------21763138716045
    vDataSep = MidB(VarArrayBinRequest, 1, nCurPos-1)

    'Start of current separator
    nDataBoundPos = 1

    'Beginning of last line
    nLastSepPos = FindToken(vDataSep & tTerm, 1)

    Do Until nDataBoundPos = nLastSepPos

    nCurPos = SkipToken(tContentDisp, nDataBoundPos)
    nCurPos = SkipToken(tName, nCurPos)
    sFieldName = ExtractField(tDoubleQuotes, nCurPos)

    nPosFile = FindToken(tFilename, nCurPos)
    nPosBound = FindToken(vDataSep, nCurPos)

    If nPosFile <> 0 And nPosFile < nPosBound Then
    Dim oUploadFile
    Set oUploadFile = New UploadedFile

    nCurPos = SkipToken(tFilename, nCurPos)
    auxStr = ExtractField(tDoubleQuotes, nCurPos)
    ' We are interested only in the name of the file, not the whole path
    ' Path separator is \ in windows, / in UNIX
    ' While IE seems to put the whole pathname in the stream, Mozilla seem to
    ' only put the actual file name, so UNIX paths may be rare. But not impossible.
    osPathSep = "\"
    if InStr(auxStr, osPathSep) = 0 then osPathSep = "/"
    oUploadFile.FileName = Right(auxStr, Len(auxStr)-InStrRev(auxStr, osPathSep))

    if (Len(oUploadFile.FileName) > 0) then 'File field not left empty
    nCurPos = SkipToken(tContentType, nCurPos)

    auxStr = ExtractField(tNewLine, nCurPos)
    ' NN on UNIX puts things like this in the streaa:
    ' ?? python py type=?? python application/x-python
    oUploadFile.ContentType = Right(auxStr, Len(auxStr)-InStrRev(auxStr, " "))
    nCurPos = FindToken(tNewLine, nCurPos) + 4 'skip empty line

    oUploadFile.Start = nCurPos-1
    oUploadFile.Length = FindToken(vDataSep, nCurPos) - 2 - nCurPos

    If oUploadFile.Length > 0 Then UploadedFiles.Add LCase(sFieldName), oUploadFile
    End If
    Else
    Dim nEndOfData
    nCurPos = FindToken(tNewLine, nCurPos) + 4 'skip empty line
    nEndOfData = FindToken(vDataSep, nCurPos) - 2
    If Not FormElements.Exists(LCase(sFieldName)) Then FormElements.Add LCase(sFieldName), String2Byte(MidB(VarArrayBinRequest, nCurPos, nEndOfData-nCurPos))
    End If

    'Advance to next separator
    nDataBoundPos = FindToken(vDataSep, nCurPos)
    Loop
    StreamRequest.Write(VarArrayBinRequest)
    End Sub

    Private Function SkipToken(sToken, nStart)
    SkipToken = InstrB(nStart, VarArrayBinRequest, sToken)
    If SkipToken = 0 then
    Response.write "Error in parsing uploaded binary request."
    Response.End
    end if
    SkipToken = SkipToken + LenB(sToken)
    End Function

    Private Function FindToken(sToken, nStart)
    FindToken = InstrB(nStart, VarArrayBinRequest, sToken)
    End Function

    Private Function ExtractField(sToken, nStart)
    Dim nEnd
    nEnd = InstrB(nStart, VarArrayBinRequest, sToken)
    If nEnd = 0 then
    Response.write "Error in parsing uploaded binary request."
    Response.End
    end if
    ExtractField = String2Byte(MidB(VarArrayBinRequest, nStart, nEnd-nStart))
    End Function

    'String to byte string conversion
    Private Function Byte2String(sString)
    Dim i
    For i = 1 to Len(sString)
    Byte2String = Byte2String & ChrB(AscB(Mid(sString,i,1)))
    Next
    End Function

    'Byte string to string conversion
    Private Function String2Byte(bsString)
    Dim i
    String2Byte =""
    For i = 1 to LenB(bsString)
    String2Byte = String2Byte & Chr(AscB(MidB(bsString,i,1)))
    Next
    End Function
    End Class

    Class UploadedFile
    Public ContentType
    Public Start
    Public Length
    Public Path
    Private nameOfFile

    ' Need to remove characters that are valid in UNIX, but not in Windows
    Public Property Let FileName(fN)
    ' nameOfFile = Recordset1ultimo.Fields.Item("massimo").Value & ".jpg"
    nameOfFile = fN
    nameOfFile = SubstNoReg(nameOfFile, "\", "_")
    nameOfFile = SubstNoReg(nameOfFile, "/", "_")
    nameOfFile = SubstNoReg(nameOfFile, ":", "_")
    nameOfFile = SubstNoReg(nameOfFile, "*", "_")
    nameOfFile = SubstNoReg(nameOfFile, "?", "_")
    nameOfFile = SubstNoReg(nameOfFile, """", "_")
    nameOfFile = SubstNoReg(nameOfFile, "<", "_")
    nameOfFile = SubstNoReg(nameOfFile, ">", "_")
    nameOfFile = SubstNoReg(nameOfFile, "|", "_")
    End Property

    Public Property Get FileName()
    FileName = nameOfFile
    End Property

    'Public Property Get FileN()ame
    End Class


    ' Does not depend on RegEx, which is not available on older VBScript
    ' Is not recursive, which means it will not run out of stack space
    Function SubstNoReg(initialStr, oldStr, newStr)
    Dim currentPos, oldStrPos, skip
    If IsNull(initialStr) Or Len(initialStr) = 0 Then
    SubstNoReg = ""
    ElseIf IsNull(oldStr) Or Len(oldStr) = 0 Then
    SubstNoReg = initialStr
    Else
    If IsNull(newStr) Then newStr = ""
    currentPos = 1
    oldStrPos = 0
    SubstNoReg = ""
    skip = Len(oldStr)
    Do While currentPos <= Len(initialStr)
    oldStrPos = InStr(currentPos, initialStr, oldStr)
    If oldStrPos = 0 Then
    SubstNoReg = SubstNoReg & Mid(initialStr, currentPos, Len(initialStr) - currentPos + 1)
    currentPos = Len(initialStr) + 1
    Else
    SubstNoReg = SubstNoReg & Mid(initialStr, currentPos, oldStrPos - currentPos) & newStr
    currentPos = oldStrPos + skip
    End If
    Loop
    End If
    End Function
    %>

    Grazie

  3. #3
    standing ovation per il titolo del 3d. una leggiucchiatina al regolamento prima di postare?

  4. #4
    cambia script di upload e usa quello di baol74 (cerca sul forum/internet)




    ps: guardiamolo il regolamento, non fare come me che mi faccio bannare per le cavolate

  5. #5

    Scusate....

    Risolto.. In un modo Strano
    Chiedo scusa ai moderatori per l'incorrettezza del Mio Post
    Sapete, ero nei guai e non ho letto le regole del post

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.