Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251

    Pagine asp in IIS 5.1 okay con IIS4 Invece no...mi aiutate?

    Ciao a tutti,
    ho un problema, in pratica ho creato delle pagina asp che funzionano perfettamente in locale con iis5.1 ma non in rete con iis4 su server nt...sono pagine che usano l'smtp e la possibilità di fare l'upload di immagini per cui abbastanza evolute.
    Mi appare quasi sempre il messaggio permission denied o folder is invalid... anche dando il full access...
    Ho l'impressione che iis4 non supporti delle istruzioni nuove, anche perchè altrimenti come si spiega che su iis5.1 funziona tutto bene?

    Grazie a chi mi aiuterà.

    Ciao!

  2. #2
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    le differenze ci sono. posta un po' di codice
    Tutti vogliono parlare, nessuno sa ascoltare.

  3. #3
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251
    Non mi funziona con il comportamento server per ultradev pure asp file upload...

    E anche con un modulo per il recupero delle password...
    :master:

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    il buffer è gestito diversamente...(problemi con redirect..)
    Server.execute ed altri metodi non sono supportati...

    postaci qualcosa e ci diamo un'occhiata
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    magari usi qualche componente per l'upload dei file che hai installato in locale ma sul server non c'è.

  6. #6
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251
    Okay, vi posto un pò di codice.
    Questo è lo script che viene richiamato così:

    all'interno della mi pagina per l'upload che si chiama news_add.asp

    Codice del incPureUpload.asp:
    <SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
    '*** Pure ASP File Upload -----------------------------------------------------
    ' Copyright 2001-2002 (c) George Petrov, www.UDzone.com
    '
    ' Script partially based on code from Philippe Collignon
    ' (http://www.asptoday.com/articles/20000316.htm)
    '
    ' New features added:
    ' * Fast file save with ADO 2.5 stream object
    ' * new file handling, wrapper functions, extra error checking
    ' * UltraDev Server Behavior extension
    ' * Progress bars, file limit checking, file type checking, file existence checking
    ' * Support for UltraDev Insert/Update Server Behavior
    ' * and much more ...
    '
    ' Version: 2.0.9
    '------------------------------------------------------------------------------
    Function getPureUploadVersion()
    getPureUploadVersion = 2.09
    End Function

    Sub BuildUploadRequest(RequestBin,UploadDirectory,stor eType,sizeLimit,nameConflict)

    Dim PosBeg, PosEnd, checkADOConn, AdoVersion, Length, boundary, boundaryPos, Pos
    Dim PosFile, Name, PosBound, FileName, ContentType, Value, ValueBeg, ValueEnd, ValueLen

    'Get the boundary
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    if PosEnd = 0 then
    Response.Write "Form was submitted with no ENCTYPE=""multipart/form-data""
    "
    Response.Write "Please correct and try again"
    Response.End
    end if
    'Check ADO Version
    set checkADOConn = Server.CreateObject("ADODB.Connection")
    on error resume next
    adoVersion = CSng(checkADOConn.Version)
    if err then
    adoVersion = Replace(checkADOConn.Version,".",",")
    adoVersion = CSng(adoVersion)
    end if
    err.clear
    on error goto 0
    set checkADOConn = Nothing
    if adoVersion < 2.5 then
    Response.Write "You don't have ADO 2.5 installed on the server.
    "
    Response.Write "The File Upload extension needs ADO 2.5 or greater to run properly.
    "
    Response.Write "You can download the latest MDAC (ADO is included) from http://<a href="http://www.microsoft...t.com/data</a>
    "
    Response.End
    end if
    'Check content length if needed
    Length = CLng(Request.ServerVariables("HTTP_Content_Length" )) 'Get Content-Length header
    If "" & sizeLimit <> "" Then
    sizeLimit = CLng(sizeLimit) * 1024
    If Length > sizeLimit Then
    Request.BinaryRead (Length)
    Response.Write "Upload size " & FormatNumber(Length, 0) & "B exceeds limit of " & FormatNumber(sizeLimit, 0) & "B"
    Response.Write "Please correct and try again"
    Response.End
    End If
    End If
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    'Get all data inside the boundaries
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
    'Members variable of objects are put in a dictionary object
    Dim UploadControl
    Set UploadControl = CreateObject("Scripting.Dictionary")
    'Get an object name
    Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-Disposition"))
    Pos = InstrB(Pos,RequestBin,getByteString("name="))
    PosBeg = Pos+6
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    Name = LCase(getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg)))
    PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filen ame="))
    PosBound = InstrB(PosEnd,RequestBin,boundary)
    'Test if object is of file type
    If PosFile<>0 AND (PosFile<PosBound) Then
    'Get Filename, content-type and content of file
    PosBeg = PosFile + 10
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    FileName = RemoveInvalidChars(Mid(FileName,InStrRev(FileName, "\")+1))
    'Add filename to dictionary object
    UploadControl.Add "FileName", FileName
    Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
    PosBeg = Pos+14
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    'Add content-type to dictionary object
    ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    UploadControl.Add "ContentType",ContentType
    'Get content of object
    PosBeg = PosEnd+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = FileName
    ValueBeg = PosBeg-1
    ValueLen = PosEnd-Posbeg
    Else
    'Get content of object
    Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
    PosBeg = Pos+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    ValueBeg = 0
    ValueEnd = 0
    End If
    'Add content to dictionary object
    UploadControl.Add "Value" , Value
    UploadControl.Add "ValueBeg" , ValueBeg
    UploadControl.Add "ValueLen" , ValueLen
    'Add dictionary object to main dictionary
    if UploadRequest.Exists(name) then
    UploadRequest(name).Item("Value") = UploadRequest(name).Item("Value") & "," & Value
    else
    UploadRequest.Add name, UploadControl
    end if
    'Loop to next object
    BoundaryPos=InstrB(BoundaryPos+LenB(boundary),Requ estBin,boundary)
    Loop

    Dim GP_keys, GP_i, GP_curKey, GP_value, GP_valueBeg, GP_valueLen, GP_curPath, GP_FullPath
    Dim GP_CurFileName, GP_FullFileName, fso, GP_BegFolder, GP_RelFolder, GP_FileExist, Begin_Name_Num
    Dim orgUploadDirectory

    if InStr(UploadDirectory,"""") > 0 then
    on error resume next
    orgUploadDirectory = UploadDirectory
    UploadDirectory = eval(UploadDirectory)
    if err then
    Response.Write "Upload folder is invalid

    "
    Response.Write "Upload Folder: " & Trim(orgUploadDirectory) & "
    "
    Response.Write "Please correct and try again"
    err.clear
    response.End
    end if
    on error goto 0
    end if

    GP_keys = UploadRequest.Keys
    for GP_i = 0 to UploadRequest.Count - 1
    GP_curKey = GP_keys(GP_i)
    'Save all uploaded files
    if UploadRequest.Item(GP_curKey).Item("FileName") <> "" then
    GP_value = UploadRequest.Item(GP_curKey).Item("Value")
    GP_valueBeg = UploadRequest.Item(GP_curKey).Item("ValueBeg")
    GP_valueLen = UploadRequest.Item(GP_curKey).Item("ValueLen")

    'Get the path
    if InStr(UploadDirectory,"\") > 0 then
    GP_curPath = UploadDirectory
    if Mid(GP_curPath,Len(GP_curPath),1) <> "\" then
    GP_curPath = GP_curPath & "\"
    end if
    GP_FullPath = GP_curPath
    else
    GP_curPath = Request.ServerVariables("PATH_INFO")
    GP_curPath = Trim(Mid(GP_curPath,1,InStrRev(GP_curPath,"/")) & UploadDirectory)
    if Mid(GP_curPath,Len(GP_curPath),1) <> "/" then
    GP_curPath = GP_curPath & "/"
    end if
    GP_FullPath = Trim(Server.mappath(GP_curPath))
    end if


    if GP_valueLen = 0 then
    Response.Write "An error has occured saving uploaded file!

    "
    Response.Write "Filename: " & Trim(GP_curPath) & UploadRequest.Item(GP_curKey).Item("FileName") & "
    "
    Response.Write "File does not exists or is empty.
    "
    Response.Write "Please correct and try again"
    response.End
    end if

    'Create a Stream instance
    Dim GP_strm1, GP_strm2
    Set GP_strm1 = Server.CreateObject("ADODB.Stream")
    Set GP_strm2 = Server.CreateObject("ADODB.Stream")

    'Open the stream
    GP_strm1.Open
    GP_strm1.Type = 1 'Binary
    GP_strm2.Open
    GP_strm2.Type = 1 'Binary

    GP_strm1.Write RequestBin
    GP_strm1.Position = GP_ValueBeg
    GP_strm1.CopyTo GP_strm2,GP_ValueLen

    'Create and Write to a File
    GP_CurFileName = UploadRequest.Item(GP_curKey).Item("FileName")
    GP_FullFileName = GP_FullPath & "\" & GP_CurFileName
    Set fso = CreateObject("Scripting.FileSystemObject")
    'Check if the folder exist
    If NOT fso.FolderExists(GP_FullPath) Then
    GP_BegFolder = InStr(GP_FullPath,"\")
    while GP_begFolder > 0
    GP_RelFolder = Mid(GP_FullPath,1,GP_BegFolder-1)
    If NOT fso.FolderExists(GP_RelFolder) Then
    fso.CreateFolder(GP_RelFolder)
    end if
    GP_BegFolder = InStr(GP_BegFolder+1,GP_FullPath,"\")
    wend
    If NOT fso.FolderExists(GP_FullPath) Then
    fso.CreateFolder(GP_FullPath)
    end if
    end if
    'Check if the file already exist
    GP_FileExist = false
    If fso.FileExists(GP_FullFileName) Then
    GP_FileExist = true
    End If
    if nameConflict = "error" and GP_FileExist then
    Response.Write "File already exists!

    "
    Response.Write "Please correct and try again"
    GP_strm1.Close
    GP_strm2.Close
    response.End
    end if
    if ((nameConflict = "over" or nameConflict = "uniq") and GP_FileExist) or (NOT GP_FileExist) then
    if nameConflict = "uniq" and GP_FileExist then
    Begin_Name_Num = 0
    while GP_FileExist
    Begin_Name_Num = Begin_Name_Num + 1
    GP_FullFileName = Trim(GP_FullPath)& "\" & fso.GetBaseName(GP_CurFileName) & "_" & Begin_Name_Num & "." & fso.GetExtensionName(GP_CurFileName)
    GP_FileExist = fso.FileExists(GP_FullFileName)
    wend
    UploadRequest.Item(GP_curKey).Item("FileName") = fso.GetBaseName(GP_CurFileName) & "_" & Begin_Name_Num & "." & fso.GetExtensionName(GP_CurFileName)
    UploadRequest.Item(GP_curKey).Item("Value") = UploadRequest.Item(GP_curKey).Item("FileName")
    end if
    on error resume next
    GP_strm2.SaveToFile GP_FullFileName,2
    if err then
    Response.Write "An error has occured saving uploaded file!

    "
    Response.Write "Filename: " & Trim(GP_curPath) & UploadRequest.Item(GP_curKey).Item("FileName") & "
    "
    Response.Write "Maybe the destination directory does not exist, or you don't have write permission.
    "
    Response.Write "Please correct and try again"
    err.clear
    GP_strm1.Close
    GP_strm2.Close
    response.End
    end if
    GP_strm1.Close
    GP_strm2.Close
    if storeType = "path" then
    UploadRequest.Item(GP_curKey).Item("Value") = GP_curPath & UploadRequest.Item(GP_curKey).Item("Value")
    end if
    on error goto 0
    end if
    end if
    next

    End Sub

    'String to byte string conversion
    Function getByteString(StringStr)
    Dim i, char
    For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
    Next
    End Function

    'Byte string to string conversion (with double-byte support now)
    Function getString(StringBin)
    Dim intCount,get1Byte
    getString =""
    For intCount = 1 to LenB(StringBin)
    get1Byte = MidB(StringBin,intCount,1)
    getString = getString & chr(AscB(get1Byte))
    Next
    End Function

    Function UploadFormRequest(name)
    Dim keyName
    keyName = LCase(name)
    if IsObject(UploadRequest) then
    if UploadRequest.Exists(keyName) then
    if UploadRequest.Item(keyName).Exists("Value") then
    UploadFormRequest = UploadRequest.Item(keyName).Item("Value")
    end if
    end if
    end if
    End Function

    Function RemoveInvalidChars(str)
    Dim newStr, ci, curChar
    for ci = 1 to Len(str)
    curChar = Asc(LCase(Mid(str,ci,1)))
    if curChar = 95 or curChar = 45 or curChar = 46 or (curChar >= 97 and curChar <= 122) or (curChar >= 48 and curChar <= 57) then
    newStr = newStr & Mid(str,ci,1)
    end if
    next
    RemoveInvalidChars = newStr
    End Function

    Sub PureUploadSetup()
    UploadQueryString = Replace(Request.QueryString,"GP_upload=true","")
    if mid(UploadQueryString,1,1) = "&" then
    UploadQueryString = Mid(UploadQueryString,2)
    end if
    GP_uploadAction = CStr(Request.ServerVariables("URL")) & "?GP_upload=true"
    If (Request.QueryString <> "") Then
    if UploadQueryString <> "" then
    GP_uploadAction = GP_uploadAction & "&" & UploadQueryString
    end if
    End If
    End Sub

    Continua---->

  7. #7
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251
    Function FixFieldsForUpload(GP_fieldsStr, GP_columnsStr)
    Dim GP_counter, GP_Fields, GP_Columns, GP_FieldName, GP_FieldValue, GP_CurFileName, GP_CurContentType

    GP_Fields = Split(GP_fieldsStr, "|")
    GP_Columns = Split(GP_columnsStr, "|")
    GP_fieldsStr = ""
    ' Get the form values
    For GP_counter = LBound(GP_Fields) To UBound(GP_Fields) Step 2
    GP_FieldName = LCase(GP_Fields(GP_counter))
    GP_FieldValue = GP_Fields(GP_counter+1)
    if UploadRequest.Exists(GP_FieldName) then
    GP_CurFileName = UploadRequest.Item(GP_FieldName).Item("FileName")
    GP_CurContentType = UploadRequest.Item(GP_FieldName).Item("ContentType ")
    else
    GP_CurFileName = ""
    GP_CurContentType = ""
    end if
    if (GP_CurFileName = "" and GP_CurContentType = "") or (GP_CurFileName <> "" and GP_CurContentType <> "") then
    GP_fieldsStr = GP_fieldsStr & GP_FieldName & "|" & GP_FieldValue & "|"
    end if
    Next
    if GP_fieldsStr <> "" then
    GP_fieldsStr = Mid(GP_fieldsStr,1,Len(GP_fieldsStr)-1)
    else
    Response.Write "An error has occured during record update!

    "
    Response.Write "There are no fields to update ...
    "
    Response.Write "If the file upload field is the only field on your form, you should make it required.
    "
    Response.Write "Please correct and try again"
    Response.End
    end if

    FixFieldsForUpload = GP_fieldsStr
    End Function

    Function FixColumnsForUpload(GP_fieldsStr, GP_columnsStr)
    Dim GP_counter, GP_Fields, GP_Columns, GP_FieldName, GP_ColumnName, GP_ColumnValue,GP_CurFileName, GP_CurContentType

    GP_Fields = Split(GP_fieldsStr, "|")
    GP_Columns = Split(GP_columnsStr, "|")
    GP_columnsStr = ""
    ' Get the form values
    For GP_counter = LBound(GP_Fields) To UBound(GP_Fields) Step 2
    GP_FieldName = LCase(GP_Fields(GP_counter))
    GP_ColumnName = GP_Columns(GP_counter)
    GP_ColumnValue = GP_Columns(GP_counter+1)
    if UploadRequest.Exists(GP_FieldName) then
    GP_CurFileName = UploadRequest.Item(GP_FieldName).Item("FileName")
    GP_CurContentType = UploadRequest.Item(GP_FieldName).Item("ContentType ")
    else
    GP_CurFileName = ""
    GP_CurContentType = ""
    end if
    if (GP_CurFileName = "" and GP_CurContentType = "") or (GP_CurFileName <> "" and GP_CurContentType <> "") then
    GP_columnsStr = GP_columnsStr & GP_ColumnName & "|" & GP_ColumnValue & "|"
    end if
    Next
    if GP_columnsStr <> "" then
    GP_columnsStr = Mid(GP_columnsStr,1,Len(GP_columnsStr)-1)
    end if
    FixColumnsForUpload = GP_columnsStr
    End Function

    </SCRIPT>

    Okay, mentre nella pagina news_add.asp viene aggiunto questo richiamo:
    <%
    '*** Pure ASP File Upload -----------------------------------------------------
    ' Copyright (c) 2001-2002 George Petrov, www.UDzone.com
    ' Process the upload
    ' Version: 2.0.9
    '------------------------------------------------------------------------------
    '*** File Upload to: """../immagini""", Extensions: "GIF,JPG,JPEG,BMP,PNG", Form: form1, Redirect: "update_ok.asp", "path", "", "over", "true", "", "" , "", "", "", "", "600", "blueFlashProgress.htm", "300", "100"

    Dim GP_redirectPage, RequestBin, UploadQueryString, GP_uploadAction, UploadRequest
    PureUploadSetup

    If (CStr(Request.QueryString("GP_upload")) <> "") Then
    on error resume next
    Dim reqPureUploadVersion, foundPureUploadVersion
    reqPureUploadVersion = 2.09
    foundPureUploadVersion = getPureUploadVersion()
    if err or reqPureUploadVersion > foundPureUploadVersion then
    Response.Write "You don't have latest version of ScriptLibrary/incPureUpload.asp uploaded on the server.
    "
    Response.Write "This library is required for the current page. It is fully backwards compatible so old pages will work as well.
    "
    Response.End
    end if
    on error goto 0
    GP_redirectPage = "update_ok.asp"
    Server.ScriptTimeout = 600

    RequestBin = Request.BinaryRead(Request.TotalBytes)
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    BuildUploadRequest RequestBin, """../immagini""", "path", "", "over"

    If (GP_redirectPage <> "" and not (CStr(UploadFormRequest("MM_insert")) <> "" or CStr(UploadFormRequest("MM_update")) <> "")) Then
    If (InStr(1, GP_redirectPage, "?", vbTextCompare) = 0 And UploadQueryString <> "") Then
    GP_redirectPage = GP_redirectPage & "?" & UploadQueryString
    End If
    Response.Redirect(GP_redirectPage)
    end if
    else
    if UploadQueryString <> "" then
    UploadQueryString = UploadQueryString & "&GP_upload=true"
    else
    UploadQueryString = "GP_upload=true"
    end if
    end if
    ' End Pure Upload
    '------------------------------------------------------------------------------
    %>

    Sono nei casini? Non ci casisco nulla...

  8. #8
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    emhhhhh .... facci un sunto o evidenzia la riga su cui ti da' errore.

  9. #9
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251
    Il fatto è che non mi dà una righa di errore vera e propria...
    mi scrive a monitor
    Upload Folder: "../immagini"
    Please correct and try again

    E si riferisce credo a questo...

    Response.Write "Upload folder is invalid

    "
    Response.Write "Upload Folder: " & Trim(orgUploadDirectory) & "
    "
    Response.Write "Please correct and try again"
    Solo che non capisco cosa intende per invalid...

  10. #10
    Utente di HTML.it L'avatar di Guidri
    Registrato dal
    Oct 2001
    Messaggi
    251
    Mi aiutate?

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.