Salve,
avri bisogno cortesemente di qualcuno che mi desse una mano con il seguente problema.
Sto eseguendo uno script VB che chiama una pagina php passando un file testo in POST.
La pagina php lo salva nella cartella import e poi lo elabora.
Il problema sta nel fatto che il file nella richiesta post è corretto, dopo il salvataggio nella cartella del server web mi trovo le lettere accentate sostituite da carateri strani.
Codice che chiama la pagina web:
codice:
Const STR_BOUNDARY As String = "3fbd04f5-b1ed-4060-99b9-fca7ff59c113"
Dim nFile As Integer
Dim baBuffer() As Byte
Dim sPostData As String
'--- read file
nFile = FreeFile
Open sPath For Binary Access Read As nFile
If LOF(nFile) > 0 Then
ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
Get nFile, , baBuffer
sPostData = StrConv(baBuffer, vbUnicode)
'MsgBox sPostData
End If
Close nFile 'Content-Type: text/html; charset=ISO-8859-1
'--- prepare body
sPostData = "--" & STR_BOUNDARY & vbCrLf & _
"Content-Disposition: form-data; name=""userfile""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf & _
"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _
sPostData & vbCrLf & _
"--" & STR_BOUNDARY & "--"
'--- post
With CreateObject("Microsoft.XMLHTTP")
.Open "POST", sUrl, bAsync
.setRequestHeader "Content-Type", " multipart/form-data; boundary=" & STR_BOUNDARY
.send CVar(sPostData)
If .Status >= 400 And .Status <= 599 Then
skebbyGatewayGetCredit = "status=failed&message=" & .Status & " - " & .statusText
Exit Function
End If
msg = .responseText
End With
se da VB salvo su file CVar(sPostData) della send ho ancora le lettere accentate al loro posto
La pagina PHP ha il seguente codice:
Codice PHP:
require_once ('class.PSRequest.php');
$uploaddir = 'import/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
//echo "File is valid, and was successfully uploaded.\n";
} else {
//echo "Possibile attacco tramite file upload!\n";
}
Il file che mi ritrovo nella cartella import ha le lettere accentate sostituite da caratteri strani.
Ci sto uscendo matto.
Grazie infinite
Andrea