Страница: 1 |
Как сделать на VBScript'е скрипт для онлайновой загрузки файлов на сайт. Если можно, то пример приведите.
На VBScript есть или нет, не скажу А вот на PHP у меня есть скрипт, если надо могк кинуть Не совсем верно. Если есть FSO, можно с помощью его прочитать файл, поставить его содержимое значением какого-нибудь хиддена в форме, потом отправить форму постом и поймать его скриптом на сервере... Ой. Просто я хотел на свойм сайте организовать что то типа бесплатного хостинга в моём домене. Например я создаю пользователю папку у МойДомен\Папка, даю пользователю пароль и он в соответствии с этим паролем может загрузить файлы тольок в СВОЮ папку через Веб браузер. Для это нужно обработать его пароль. Если пароль сходится отправить на сервак свой пароль. Конечно такой код очень слаб в плане защиты, но и защищать то в принципе нечего. --- Наверное это не реально. Зато идея была хорошая Почему это нельзя загружать на хостера свои файлы? Кто это запрещал? 2Павел: я же написал "ой" Слышь CyRax если хочешь сделать бесплатный хостинг то используй Microsoft Personal Web Server. Для загрузки жми сюда. Если хочешь узнать как сделать UpLoad а ASP то жми сюда. Страница: 1 |
Вопрос: UpLoad на VBScript
Добавлено: 13.02.04 05:31
Автор вопроса: CyRax | Web-сайт:
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #1
Добавлено: 13.02.04 11:14
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 13.02.04 11:25
Для загрузки файлов на сервер клиентскими скриптами не обойтись.
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 13.02.04 22:08
Номер ответа: 4
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #4
Добавлено: 14.02.04 02:12
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 14.02.04 09:30
Sharp, а как ты на сервере поймаешь файл, если можно пользоваться
только клиентскими скриптами?
Номер ответа: 6
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #6
Добавлено: 14.02.04 10:32
ИМХО, если хост узнает об этом - они лишат тебя домена. А вообще я
думаю, здесь не обойтись без какого-нть ASP, PHP...
Номер ответа: 7
Автор ответа:
Yeputons
ICQ: 278444762
Вопросов: 71
Ответов: 179
Профиль | | #7
Добавлено: 17.03.04 20:41
Слышь, Alex с чего ты взял что если хост об этом прознает то лишит его домена, а?
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 17.03.04 21:38
Номер ответа: 9
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #9
Добавлено: 18.03.04 17:10
Обычно бесплатные хостинги домен дают для домашнего сайта или для
чего-нть в этом роде... Но какой хостинг смирится с тем, что ты сам
будешь раздавать место под странички другим юзерам? Я не имею ввиду,
что кто-то тебе запретит сделать возможность файлы загружать, если
сервер позволяет...
Номер ответа: 10
Автор ответа:
Yeputons
ICQ: 278444762
Вопросов: 71
Ответов: 179
Профиль | | #10
Добавлено: 20.03.04 16:22
Номер ответа: 11
Автор ответа:
urij
Вопросов: 1
Ответов: 8
Web-сайт:
Профиль | | #11
Добавлено: 14.07.05 09:57
Взял со страницы: javascript:open('http://www.pstruh.cz/tips/detpg_uploadvbsie.htm','_top');
Скопировал в файл upload.vbs вот этот его (Copyright (C) 2001 Antonin Foller, PSTRUH Software) код:
'Upload file using http protocol And multipart/form-data
'v1.01
'2001 Antonin Foller, PSTRUH Software
do_vbsUpload
Sub do_vbsUpload()
'We need at least two arguments (File + URL)
If WScript.Arguments.Count < 2 Then InfoEcho
'Are some required objects missing?
If InStr(CheckRequirements, "Error" > 0 Then InfoEcho
Dim FileName, DestURL, FieldName
FieldName = "FileField" 'Default field name
Dim aCounter, Arg
aCounter = 1 'Argument counter
For Each Arg In WScript.Arguments
Select Case aCounter
Case 1: FileName = Arg
Case 2: DestURL = Arg
Case 3: FieldName = Arg
End Select
aCounter = aCounter + 1
Next
UploadFile DestURL, FileName, FieldName
End Sub
'******************* upload - begin
'Upload file using input type=file
Sub UploadFile(DestURL, FileName, FieldName)
'Boundary of fields.
'Be sure this string is Not In the source file
Const Boundary = "---------------------------0123456789012"
Dim FileContents, FormData
'Get source file As a binary data.
FileContents = GetFile(FileName)
'Build multipart/form-data document
FormData = BuildFormData(FileContents, Boundary, FileName, FieldName)
'Post the data To the destination URL
IEPostBinaryRequest DestURL, FormData, Boundary
End Sub
'Build multipart/form-data document with file contents And header info
Function BuildFormData(FileContents, Boundary, FileName, FieldName)
Dim FormData, Pre, Po
Const ContentType = "application/upload"
'The two parts around file contents In the multipart-form data.
Pre = "--" + Boundary + vbCrLf + mpFields(FieldName, FileName, ContentType)
Po = vbCrLf + "--" + Boundary + "--" + vbCrLf
'Build form data using recordset binary field
Const adLongVarBinary = 205
Dim RS: Set RS = CreateObject("ADODB.Recordset"
RS.Fields.Append "b", adLongVarBinary, Len(Pre) + LenB(FileContents) + Len(Po)
RS.Open
RS.AddNew
Dim LenData
'Convert Pre string value To a binary data
LenData = Len(Pre)
RS("b".AppendChunk (StringToMB(Pre) & ChrB(0))
Pre = RS("b".GetChunk(LenData)
RS("b" = ""
'Convert Po string value To a binary data
LenData = Len(Po)
RS("b".AppendChunk (StringToMB(Po) & ChrB(0))
Po = RS("b".GetChunk(LenData)
RS("b" = ""
'Join Pre + FileContents + Po binary data
RS("b".AppendChunk (Pre)
RS("b".AppendChunk (FileContents)
RS("b".AppendChunk (Po)
RS.Update
FormData = RS("b"
RS.Close
BuildFormData = FormData
End Function
'sends multipart/form-data To the URL using IE
Function IEPostBinaryRequest(URL, FormData, Boundary)
'Create InternetExplorer
Dim IE: Set IE = CreateObject("InternetExplorer.Application"
'You can uncoment Next line To see form results
'IE.Visible = True
'Send the form data To URL As POST multipart/form-data request
IE.Navigate URL, , , FormData, _
"Content-Type: multipart/form-data; boundary=" + Boundary + vbCrLf
Do While IE.Busy
Wait 1, "Upload To " & URL
Loop
'Get a result of the script which has received upload
On Error Resume Next
IEPostBinaryRequest = IE.Document.body.innerHTML
IE.Quit
End Function
'Infrormations In form field header.
Function mpFields(FieldName, FileName, ContentType)
Dim MPTemplate 'template For multipart header
MPTemplate = "Content-Disposition: form-data; name=""{field}"";" + _
" filename=""{file}""" + vbCrLf + _
"Content-Type: {ct}" + vbCrLf + vbCrLf
Dim Out
Out = Replace(MPTemplate, "{field}", FieldName)
Out = Replace(Out, "{file}", FileName)
mpFields = Replace(Out, "{ct}", ContentType)
End Function
Sub Wait(Seconds, Message)
On Error Resume Next
CreateObject("wscript.shell".Popup Message, Seconds, "", 64
End Sub
'Returns file contents As a binary data
Function GetFile(FileName)
Dim Stream: Set Stream = CreateObject("ADODB.Stream"
Stream.Type = 1 'Binary
Stream.Open
Stream.LoadFromFile FileName
GetFile = Stream.Read
Stream.Close
End Function
'Converts OLE string To multibyte string
Function StringToMB(S)
Dim I, B
For I = 1 To Len(S)
B = B & ChrB(Asc(Mid(S, I, 1)))
Next
StringToMB = B
End Function
'******************* upload - end
'******************* Support
'Basic script info
Sub InfoEcho()
Dim Msg
Msg = Msg + "Upload file using http And multipart/form-data" & vbCrLf
Msg = Msg + "Copyright (C) 2001 Antonin Foller, PSTRUH Software" & vbCrLf
Msg = Msg + "use" & vbCrLf
Msg = Msg + "[cscript|wscript] fupload.vbs file url [fieldname]" & vbCrLf
Msg = Msg + " file ... Local file To upload" & vbCrLf
Msg = Msg + " url ... URL which can accept uploaded data" & vbCrLf
Msg = Msg + " fieldname ... Name of the source form field." & vbCrLf
Msg = Msg + vbCrLf + CheckRequirements
WScript.Echo Msg
WScript.Quit
End Sub
'Checks If all of required objects are installed
Function CheckRequirements()
Dim Msg
Msg = "This script requires some objects installed To run properly." & vbCrLf
Msg = Msg & CheckOneObject("ADODB.Recordset"
Msg = Msg & CheckOneObject("ADODB.Stream"
Msg = Msg & CheckOneObject("InternetExplorer.Application"
CheckRequirements = Msg
' MsgBox Msg
End Function
'Checks If the one object is installed.
Function CheckOneObject(oClass)
Dim Msg
On Error Resume Next
CreateObject oClass
If Err = 0 Then Msg = "OK" Else Msg = "Error:" & Err.Description
CheckOneObject = oClass & " - " & Msg & vbCrLf
End Function
Запустил upload.vbs, вижу Message:
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Upload file using http And multipart/form-data
Copyright (C) 2001 Antonin Foller, PSTRUH Software
use
[cscript|wscript] fupload.vbs file url [fieldname]
file ... Local file To upload
url ... URL which can accept uploaded data
fieldname ... Name of the source form field.
This script requires some objects installed To run properly.
ADODB.Recordset - OK
ADODB.Stream - OK
InternetExplorer.Application - OK
Подставил аргументы - CGI скрипт принял Upload!
Номер ответа: 12
Автор ответа:
popovius
ICQ: 225692610
Вопросов: 9
Ответов: 15
Web-сайт:
Профиль | | #12
Добавлено: 02.08.05 00:21
ой какой тебе фигни насоветовали, юзай готовый скрипт http://dwindex.com/?fileid=211