Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# ASP.NET Проблема с объектом JSProxy http://www.cyberforum.ru/asp-net/thread504137.html
Возникает такая проблема: при отображении страниц сайта появляется ошибка "не могу создать объект JSProxy". При нажатии кнопки "обновить" страница отображается нормально. Сервер IIS (win2k). Как...
Проверка правописания Word в asp C# ASP.NET
Никто не пробовал подключать проверку правописания объекта Word в ASP. Хотелось бы знать более-меннее конкретную методику вкратце.
Chr(13) в строке запроса C# ASP.NET
Привет всем. Заполняю форму при помощти <select>. В форме есть одно <textarea> для комментариев. Если в это поле кто-то в середине вставляет Chr(13) Клавиша Enter/ то генерится такой текст....
C# ASP.NET Задание ориентации страницы При формировании отчетов по результатам работы .ASP response.write .... или при открытии страницы с подготовленным отчетом response.clear response.redirect "othet.rtf" бывает необходимо... http://www.cyberforum.ru/asp-net/thread504102.html
C# ASP.NET Проблема с запросом http://www.cyberforum.ru/asp-net/thread504091.html
Возникла проблемма не могу написать запрос чтобы в 3м поле при вводе номера строки выдавалось ее содержимое (в проге первое поле имя БД, второе номер таблицы, третье номер строки). Вот текст ASP:...
C# ASP.NET Использование ServerXMLHTTP
Не проходит аутентификацию на IIS Win2k3. Set objSrvHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") objSrvHTTP.Open "GET", "http://aa/bb.asp http://aa/bb.asp", False, "user", "pwd"Компьютер...
C# ASP.NET Вопрос по конфигурации FTP в IIS
есть IIS, ftp-сайт, к нему созданы 2 виртуальные директории с именами www.site.com и site, обе директории указывают на один и тот же каталог на диске. пытаюсь открыть в <EM>Windows Explorer</EM>...
C# ASP.NET Блокировка View Sourse иногда встречается такая вещь,как блокировка View Sourse. как это сделать? http://www.cyberforum.ru/asp-net/thread504019.html
C# ASP.NET Экспорт в Excel/PDF/other http://www.cyberforum.ru/asp-net/thread504001.html
<P align=left>Помогите, пожалуйста, решить задачу. </P><P align=left>Необходимо формировать многостраничные отчеты в удобном для печати формате. Каждая из страница должна имеет свой вид (заголовки,...
C# ASP.NET Проблема с базой данных Уважаемые! Подскажите мне в чем может быть проблема. У меня есть таблица Доска объявлений, куда пользователи вносят свои объявления. Объявления выводятся на страницу одно за другим. В целом все... http://www.cyberforum.ru/asp-net/thread503985.html
ambarka2
0 / 0 / 1
Регистрация: 04.05.2010
Сообщений: 116
25.05.2006, 20:07 0

Будет ли работать код?

25.05.2006, 20:07. Просмотров 1562. Ответов 10
Метки (Все метки)

Ответ

В принципе вот тут посидел немного...
Если ограничится невысокими требованиями, то можно и без всяких компонент аплоадить файлы, ничего тут сложного нету.
Значит, чем полуется клиент (файл myform.htm):
Код
<html>
  <head>
    <title></title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1 
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5 http://schemas.microsoft.com/intellisense/ie5 
  </head>
  <body>
    <form action="stupid_upload.asp" method="post" enctype="multipart/form-data 
      <input type="file" name="myfile_field" value=" 

      <input type="submit" value="отправить 
    </form>
  </body>
</html>
На сервере в корневой дирекории сайта делаем папку upload_dir (это нужно для скрипта, но всегда можно подправить под себя)
Работает такой скриптик(файл stupid_upload.asp):[code]
<%@ Language=VBScript %><%Option Explicit%><META content="Microsoft Visual Studio .NET 7.1" name=GENERATOR><%Const c_filename_var = "filename="""Dim bResultOkbResultOk = falseDim objStream1Dim CountBytesDim ServerFilePath, ClientFileNameCountBytes = Request.TotalBytesSet objStream1 = Server.CreateObject("ADODB.Stream") 'сюда будем складывать, что прилетело с html формы методом postobjStream1.Type = 1 'adTypeBinaryobjStream1.OpenobjStream1.Write Request.BinaryRead(CountBytes) 'данные приняли'чисто для эксперимена можно посмотреть что пришло 'собственно туда, в этот файл, я и смотрел когда писал этот скрипт'ServerFilePath = Server.MapPath("./upload_dir") & "upload2.txt"'objStream1.SaveToFile ServerFilePath, 2 'adSaveCreateOverWrite'меняем тип у потока на текстовыйobjStream1.Position = 0objStream1.Type = 2 'adTypeTextobjStream1.Charset = "windows-1251"'сохраняем в текстовой переменнойDim myTextmyText = objStream1.ReadTextobjStream1.Position = 0'чисто для эксперимента сравниваем длину'Response.Write("CountBytes=" & CountBytes & "
" & vbCrLf)'Response.Write("Len(myText)=" & Len(myText) & "
" & vbCrLf)'далее идут действия, чтобы "вычленить" файл из портянкиDim Pos_1BR, Pos_2BR, DelimPos_1BR = InStr(1, myText, vbCrLf)If Pos_1BR > 0 Then Pos_2BR = InStr(Pos_1BR + 1, myText, vbCrLf) Delim = Left(myText, Pos_1BR - 1) 'это у нас делемитер (при enctype="multipart/form-data") Dim PosFileName Dim UserFilePath PosFileName = InStr(myText, c_filename_var) 'начало строчки содержащей название файла If PosFileName < Pos_2BR Then 'если нашли начало строчки там где она должна быть... PosFileName = PosFileName + Len(c_filename_var) 'корректируем переменную, чтобы указывала на начало искомого UserFilePath = Mid(myText, PosFileName, Pos_2BR - PosFileName - 1) 'Response.Write("UserFilePath=" & UserFilePath & "
" & vbCrLf) Dim tArr 'массив где будут лежать составляющие пути файла tArr = Split(UserFilePath, "", -1) ClientFileName = tArr(UBound(tArr)) 'берем последний элемент массива - оно же название файла. 'Response.Write("ClientFileName=" & ClientFileName & "
" & vbCrLf) Dim Pos_DoublBR, Pos_NextDelim Pos_DoublBR = InStr(myText, vbCrLf & vbCrLf) 'положение начала файла (без учета длины vbCrLf & vbCrLf) Pos_NextDelim = InStr(Pos_1BR, myText, Delim) 'положение конца файла (без учета длины vbCrLf) Dim CntBytesInFile CntBytesInFile = (Pos_NextDelim - 2) - (Pos_DoublBR + 4) 'высчитываем длину файла Dim objStream2 Set objStream2 = Server.CreateObject("ADODB.Stream") 'сюда положи ml>
<head>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1
</head>
<body>
<%
Const c_filename_var = "filename="""
Dim bResultOk
bResultOk = false
Dim objStream1
Dim CountBytes
Dim ServerFilePath, ClientFileName
CountBytes = Request.TotalBytes
Set objStream1 = Server.CreateObject("ADODB.Stream") 'сюда будем складывать, что прилетело с html формы методом post
objStream1.Type = 1 'adTypeBinary
objStream1.Open
objStream1.Write Request.BinaryRead(CountBytes) 'данные приняли
'чисто для эксперимена можно посмотреть что пришло
'собственно туда, в этот файл, я и смотрел когда писал этот скрипт
'ServerFilePath = Server.MapPath("./upload_dir") & "upload2.txt"
'objStream1.SaveToFile ServerFilePath, 2 'adSaveCreateOverWrite
'меняем тип у потока на текстовый
objStream1.Position = 0
objStream1.Type = 2 'adTypeText
objStream1.Charset = "windows-1251"
'сохраняем в текстовой переменной
Dim myText
myText = objStream1.ReadText
objStream1.Position = 0
'чисто для эксперимента сравниваем длину
'Response.Write("CountBytes=" & CountBytes & "
" & vbCrLf)
'Response.Write("Len(myText)=" & Len(myText) & "
" & vbCrLf)
'далее идут действия, чтобы "вычленить" файл из портянки
Dim Pos_1BR, Pos_2BR, Delim
Pos_1BR = InStr(1, myText, vbCrLf)
If Pos_1BR > 0 Then

Pos_2BR = InStr(Pos_1BR + 1, myText, vbCrLf)

Delim = Left(myText, Pos_1BR - 1) 'это у нас делемитер (при enctype="multipart/form-data")

Dim PosFileName
Dim UserFilePath
PosFileName = InStr(myText, c_filename_var) 'начало строчки содержащей название файла

If PosFileName < Pos_2BR Then 'если нашли начало строчки там где она должна быть...
PosFileName = PosFileName + Len(c_filename_var) 'корректируем переменную, чтобы указывала на начало искомого

UserFilePath = Mid(myText, PosFileName, Pos_2BR - PosFileName - 1)
'Response.Write("UserFilePath=" & UserFilePath & "
" & vbCrLf)

Dim tArr 'массив где будут лежать составляющие пути файла

tArr = Split(UserFilePath, "", -1)

ClientFileName = tArr(UBound(tArr)) 'берем последний элемент массива - оно же название файла.
'Response.Write("ClientFileName=" & ClientFileName & "
" & vbCrLf)

Dim Pos_DoublBR, Pos_NextDelim

Pos_DoublBR = InStr(myText, vbCrLf & vbCrLf) 'положение начала файла (без учета длины vbCrLf & vbCrLf)
Pos_NextDelim = InStr(Pos_1BR, myText, Delim) 'положение конца файла (без учета длины vbCrLf)

Dim CntBytesInFile
CntBytesInFile = (Pos_NextDelim - 2) - (Pos_DoublBR + 4) 'высчитываем длину файла

Dim objStream2
Set objStream2 = Server.CreateObject("ADODB.Stream") 'сюда положим наш файл
objStream1.Type = 1 'adTypeBinary
objStream1.Position = Pos_DoublBR + 4 - 1 'встаем в потоке1 на начало файла

objStream2.Type = 1 'adTypeBinary
objStream2.Open
objStream2.Write objStream1.Read(CntBytesInFile) 'записываем в поток2 из потока1

ServerFilePath = Server.MapPath("./upload_dir") & "" & ClientFileName 'подсуетимся с полным путем дл

Вернуться к обсуждению:
Будет ли работать код?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2006, 20:07

Будет ли работать код?
Привет! Помогите пожалуйста разобраться, будет ли работать этот код для кнопки. on (press) {...

Будет ли работать данный код?
Здравствуйте. У меня есть вопрос. Будет ли работать этот код и если нет, то как исправить? Заранее...

Будет ли работать этот код?
Здравствуйте. У меня есть вопрос. Будет ли работать данный PHP код? Заранее спасибо за ответ. ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru