Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2012-09-22 06:39:22 ЛС | профиль | цитата
Подскажите пожалуйста, мне надо загружать фотки на сервер, по несколько штук за раз. С прогресс-баром. В качестве сервера TCP_ServerEx.

С HiAsm частью я может и разберусь как-то, но какой код нужен для браузера? Почитал про ajax, вроде то, что мне надо, но все примеры написаны для работы со стандартным веб-сервером, а не самодельным. Поэтому не знаю с чего начать.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#2: 2012-09-22 10:42:25 ЛС | профиль | цитата
login, с изучения хотя бы основ протокола HTTP, и формирования внятного ТЗ ("в правильном вопросе содержится половина ответа")
карма: 1

0
Ответов: 1429
Рейтинг: 50
#3: 2012-09-22 15:58:17 ЛС | профиль | цитата
iarspider, я нахожусь примерно на уровне понимания работы стандартных форм браузеров.
Когда отправляется форма, и пока файл не догрузится браузер висит. Без прогресс-бара.

Основы HTTP я немного знаю. На стороне сервера в элемент TCP_ServerEx приму то, что пришлет мне браузер. Но как начать лить файлы фоном, из браузера, и делать запросы состояния закачки фоном, я не понимаю.

Ладно, если такое сложно подсказать сразу, буду пробовать что-то на ajax, потом спрашивать.


карма: 0

0
Ответов: 5446
Рейтинг: 323
#4: 2012-09-22 16:23:46 ЛС | профиль | цитата
login, а может не стОит изобретать велосипед, а? Всё-таки web-сервер - это очень сложный проект...
От твоего сервера требуется в ответ на некий запрос отдавать количество принятых байт - считать их будет другой поток (тот, который обрабатывает загрузку файла). Учти при этом, что файл (скорее всего) тебе придёт закодированным в base64 - т.е. каждые 3 байта исходного файла к тебе придёт в виде примерно 4 байт.
карма: 1

0
Ответов: 1429
Рейтинг: 50
#5: 2012-09-22 16:33:39 ЛС | профиль | цитата
iarspider, спасибо за информацю.
iarspider писал(а):
изобретать велосипед
это не полноценный сервер. Я делаю онлайн сервис обработки фоток. Обработка сложная, и мне проще было бы всё, включая прием и отсылку, сделать на hiAsm-e.

Но может Вы и правы, надо подумать.
Просто у меня ничего кроме отправки фоток и возврата результата не будет, поэтому я сначала подумал, что это не сложно.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#6: 2012-09-22 17:10:40 ЛС | профиль | цитата
login, посмотри в сторону CGI - это упростит твою задачу.
карма: 1

1
Голосовали:login
Ответов: 1429
Рейтинг: 50
#7: 2012-09-22 17:27:26 ЛС | профиль | цитата
iarspider, читаю CGI, похоже подходит, спасибо.
карма: 0

0
Ответов: 1429
Рейтинг: 50
#8: 2012-09-27 10:14:10 ЛС | профиль | цитата
С загрузкой фото я разборался, прикрутил сторонний загрузчик..

Теперь вопрос, как отображать результаты.

Фотки обрабатываются "по одной", и должны появляться на странице сами. Чтобы не надо было перегружать страницу.
Начал с того, чтобы разместить на HTML странице теймер, но как только перенес пример HiAsm-a в php-скрипт(в контейнер) он тут-же перестал работать.

php-скрипт:
code_29183.txt

Желтый квадратик перемещается, а таймер не считает.

(еще дополнительный вопрос, какие символы печатать в HTML страницу в качестве "переноса строки", чтобы в отладчике браузера можно было понять код, ато он колбасит всё в одну строку)

карма: 0

0
файлы: 1code_29183.txt [2.3KB] [120]
Ответов: 5446
Рейтинг: 323
#9: 2012-09-27 15:17:42 ЛС | профиль | цитата
login, стыдно, батенька, имея почти 1500 сообщений не уметь "читать" коды компонентов. И таймер, и TAG_* не будут работать в контейнере HTML.
карма: 1

0
Ответов: 1429
Рейтинг: 50
#10: 2012-09-28 07:43:45 ЛС | профиль | цитата
[offtop]iarspider,

Ничего не понимаю в скриптах пакета веб, поэтому не знаю как должно всё работать, и почему именно, оно будет работать. Это надо хоть немного знать сами java скрипты и то, как они дружат с html, а я ноль. [/offtop]
------------ Дoбавленo в 05.10:
Всётаки пакет WEB неправильно написан. Не работают элементарные, с точки зрания юзера вещи.
Добавляю таймер:

Add(HtmlEntryPoint,6508469,35,105)
{
DocType="<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">"
link(onStart,6513700:doPrint,[])
}
Add(HTM_Html,6513700,91,105)
{
link(onPrint,7465234:doEvent,[])
}
Add(Hub,7465234,147,105)
{
link(onEvent1,12529672:doPrint,[])
link(onEvent2,15491478:doPrint,[(191,118)(191,216)])
}
Add(HTM_Head,12529672,217,105)
{
link(onPrint,15187304:doEvent,[])
}
Add(HTM_Title,142091,329,105)
{
link(onPrint,14521885:doEcho,[])
}
Add(Echo,14521885,385,105)
{
Message="Dynamic image"
}
Add(HTM_Style,1898430,329,161)
{
link(onPrint,3595574:doPrint,[])
}
Add(HTM_Body,15491478,217,210)
{
Point(onLoad)
link(onPrint,1638899:doEvent,[])
}
Add(HTM_Table,2726193,329,210)
{
Class="main_table"
link(onPrint,16292614:doPrint,[])
}
Add(CSS,12910666,441,161)
{
Name="main_td"
TextAlign=2
BorderColor="gray"
BorderWidth="1px"
BorderStyle=3
BgColor="silver"
Width="70px"
Height="30px"
Cursor=2
link(onPrint,10570212:doPrint,[])
}
Add(HTM_Tr,16292614,385,210)
{
link(onPrint,14347698:doEvent,[])
}
Add(HTM_Td,13740620,721,210)
{
Class="main_td"
Point(onMouseOver)
link(onPrint,13994227:doEcho,[])
link(onMouseOver,4182214:doData,[])
}
Add(HTM_Td,8670172,497,266)
{
link(onPrint,3762758:doPrint,[])
}
Add(Echo,13994227,777,210)
{
Message="Image 1"
}
Add(Hub,14347698,441,210)
{
OutCount=3
link(onEvent1,14032929:doPrint,[])
link(onEvent2,8670172:doPrint,[(485,223)(485,272)])
}
Add(Hub,12329057,609,210)
{
OutCount=3
link(onEvent1,4532502:doPrint,[])
link(onEvent2,6307052:doPrint,[(656,223)(656,272)])
link(onEvent3,1831328:doPrint,[(652,230)(652,328)])
}
Add(HTM_Tr,6307052,665,266)
{
link(onPrint,5179184:doPrint,[])
}
Add(HTM_Td,5179184,721,266)
{
Class="main_td"
Point(onMouseOver)
link(onPrint,834904:doEcho,[])
link(onMouseOver,8421846:doData,[])
}
Add(Echo,834904,777,266)
{
Message="Image 2"
}
Add(HTM_Img,3762758,560,266)
{
Class="image"
Id="main_img"
Src="1.jpg"
Point(doSrc)
Point(onClick)
Point(curSrc)
link(onPrint,5329005:doTimer,[(613,272)(613,306)(479,306)(479,328)])
}
Add(HTM_Tr,1831328,665,322)
{
link(onPrint,2959336:doPrint,[])
}
Add(HTM_Td,2959336,721,322)
{
Class="main_td"
Point(onMouseOver)
link(onPrint,14819040:doEcho,[])
link(onMouseOver,2913602:doData,[])
}
Add(Echo,14819040,777,322)
{
Message="Image 3"
}
Add(DoData,4182214,833,217)
{
Data=String(1.jpg)
link(onEventData,2134634:doWork2,[(889,223)(889,314)])
}
Add(DoData,8421846,833,273)
{
Data=String(2.jpg)
link(onEventData,2134634:doWork1,[(879,279)])
}
Add(HTM_Tr,4532502,665,210)
{
link(onPrint,13740620:doPrint,[])
}
Add(DoData,2913602,833,329)
{
Data=String(3.jpg)
link(onEventData,2134634:doWork3,[(879,335)])
}
Add(HubEx,2134634,875,308)
{
Angle=2
link(onEvent,3762758:doSrc,[(541,314)(541,279)])
}
Add(CSS,3595574,385,161)
{
Name="main_table"
BorderColor="gray"
BorderWidth="1px"
BorderStyle=3
BgColor="white"
link(onPrint,12910666:doPrint,[])
}
Add(HTM_Table,16118184,553,210)
{
link(onPrint,12329057:doEvent,[])
}
Add(HTM_Td,14032929,497,210)
{
link(onPrint,16118184:doPrint,[])
}
Add(CSS,10570212,497,161)
{
Name="image"
BorderWidth="0"
Width="128"
Height="128"
Cursor=3
link(onPrint,13940448:doPrint,[])
}
Add(Hub,1638899,273,210)
{
link(onEvent1,2726193:doPrint,[])
link(onEvent2,5941954:doPrint,[(317,223)(317,265)])
}
Add(CSS,13940448,553,161)
{
Tag="div"
Name="paste_div"
BorderColor="black"
BorderWidth="1px"
BorderStyle=3
BgColor="silver"
Width="32px"
Height="32px"
Float=1
}
Add(Hub,15187304,273,105)
{
link(onEvent1,142091:doPrint,[])
link(onEvent2,1898430:doPrint,[(317,118)(317,167)])
}
Add(MultiElement,12970951,560,322)
{
link(Data1,3762758:curSrc,[])
}
BEGIN_SDK
Add(EditMulti,6842874,6,6)
{
WorkCount=1
DataCount=1
Height=116
link(doWork1,7212879:doPrint,[(49,12)(49,76)])
}
Add(HTML_Collector,7212879,92,70)
{
link(onPrint,3220149:doStrCat,[])
link(Src,6842874:Data1,[(98,38)(12,38)])
}
BEGIN_SDK
Add(HCEditor,12014862,6,6)
{
DataCount=#3:Src|
Width=104
Height=88
link(doPrint,5866296:doPrint,[(27,12)(27,48)])
}
Add(HTM_Img,5866296,35,42)
{
link(Src,12014862:Src,[(48,34)(12,34)])
}
END_SDK
Add(StrCat,3220149,147,70)
{
link(onStrCat,16119938:doInnerHTML,[])
link(Str1,16119938:InnerHTML,[(153,59)(191,59)(191,114)(209,114)])
}
Add(TAG_InnerHTML,16119938,203,70)
{
Id="line"
}
END_SDK
Add(HTM_Div,5941954,329,259)
{
Id="line"
}
Add(Timer,5329005,497,322)
{
Interval=1000
link(onTimer,12970951:doWork1,[])
}



Не работает, открываю блокнот, делаю те же, по смыслу, действия руками - работает. (надо нажать на место для картинки)

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script language="javascript">
function multi_call34(arg1) {
document.getElementById("line").innerHTML = document.getElementById("line").innerHTML + "<img src=\"" + arg1 + "\">";
}
</script>


<html>
<head>
<title>
Dynamic image</title>
<style>
.main_table { border-color: gray; border-width: 1px; border-style: solid; background-color: white; }
.main_td { text-align: center; border-color: gray; border-width: 1px; border-style: solid; background-color: silver; width: 70px; height: 30px; cursor: default; }
.image { border-width: 0; width: 128; height: 128; cursor: hand; }
div.paste_div { border-color: black; border-width: 1px; border-style: solid; background-color: silver; width: 32px; height: 32px; float: left; }
</style>
</head>
<body>
<table class="main_table">
<tr>
<td>
<table>
<tr>
<td class="main_td" onmouseover='document.getElementById("main_img").src = "1.jpg";'>
Image 1</td>
</tr>
<tr>
<td class="main_td" onmouseover='document.getElementById("main_img").src = "2.jpg";'>
Image 2</td>
</tr>
<tr>
<td class="main_td" onmouseover='document.getElementById("main_img").src = "3.jpg";'>
Image 3</td>
</tr>
</table>
</td>
<td>
<img id="main_img" class="image" src="1.jpg" onclick='setInterval("multi_call34(document.all.main_img.src)",1000);'>
</td>
</tr>
</table>
<div id="line">
</div>
</body>
</html>

<!-- made by HiAsm 4.4 build 185 -->


Значит мыслю я правильно, и таймер втыкаю в нужное место.

Еслиб я делал этот пакет, то у меня бы это работало в первую очередь, я бы с подобных вещей начинал разработку пакета.


Более менее разобрался. Таймер подключился так:

#hws
Add(HtmlEntryPoint,38194,126,210)
{
link(onStart,324267:doPrint,[])
}
Add(HTM_Html,324267,196,210)
{
Point(onLoad)
link(onPrint,1083471:doEvent,[])
link(onLoad,10777630:doData,[(250,223)(250,139)])
}
Add(Hub,1083471,287,210)
{
link(onEvent1,9884943:doPrint,[])
link(onEvent2,10853437:doPrint,[(311,223)(311,293)])
}
Add(HTM_Div,9884943,329,210)
{
Id="cont"
Point(onLoad)
}
Add(TAG_InnerHTML,13441872,504,210)
{
Id="cont"
}
Add(HTM_Div,10853437,329,287)
{
Id="cont1"
Point(onLoad)
}
Add(TAG_InnerHTML,14516872,504,287)
{
Id="cont1"
}
Add(Math,11681746,441,210)
{
Op2=1
link(onResult,13441872:doInnerHTML,[])
link(Op1,11681746:Result,[(447,198)(435,198)(435,254)(447,254)])
}
Add(Math,7902673,441,287)
{
Op2=2
link(onResult,14516872:doInnerHTML,[])
link(Op1,7902673:Result,[(447,275)(435,275)(435,331)(447,331)])
}
Add(Timer,11611370,315,133)
{
Interval=1000
link(onTimer,15979810:doEvent,[])
}
Add(DoData,10777630,266,133)
{
link(onEventData,11611370:doTimer,[])
}
Add(Hub,15979810,371,133)
{
link(onEvent1,11681746:doOperation,[(424,139)(424,216)])
link(onEvent2,7902673:doOperation,[(403,146)(403,293)])
}

карма: 0

0
Ответов: 5446
Рейтинг: 323
#11: 2012-09-28 10:19:38 ЛС | профиль | цитата
login, нормально он написан - не позволяет в одну кучу смешивать PHP, HTML и javascript. Для каждого языка либо делается свой проект, либо используется свой контейнер (HTML_Collector, JavaScript_Collector).
карма: 1

0
Ответов: 1429
Рейтинг: 50
#12: 2012-09-28 13:36:50 ЛС | профиль | цитата
В итоге столкнулся с неразрешимой проблемой. Сторонний аплоадер создает свою собственную сессию, номер которой перебросить в свои php скрипты никак не удалось.. Просто нет слов..

Я думал, что один юзер = одна сессия.
А оказалось, разные скрипты = разные сессии...

sessi.jpg

---проблемму выяснил---
Оказывается все флеш-аплоадеры теряют сессии вовремя пересылки файлов.
http://code-igniter.ru/wiki/Подмена_сессии_для_Flash-загрузчиков
http://www.mokrushin.net/post/flash-php-sessions/

Веб-технологии, самые убогие технологии на планете..
карма: 0

0
файлы: 1sessi.jpg [60.4KB] [272]
Ответов: 1429
Рейтинг: 50
#13: 2012-11-01 19:52:07 ЛС | профиль | цитата
Кстати я закончил "сервис автоматической цветокоррекции фоток".

Запустил его в тестовом режиме, на временном домене.
Если интересно, можете глянуть

http://fixcolor.sytes.net

Фотки надо загружать обычные, нейтральные(с нормальным балансом белого), просто с фотика, без предварительной обработки, тогда результат будет нормально виден.

jpg, jpeg, png - до 20мб

до
29458136.jpg
после
www.fixcolor.sytes.net (cold) 29458136.jpg
карма: 0

0
файлы: 129458136.jpg [28.4KB] [221]
Ответов: 1173
Рейтинг: 49
#14: 2012-11-02 17:32:06 ЛС | профиль | цитата
[flood]login, подправьте ссылочку:
login писал(а):
http://forum.hiasm.com/fixcolor.sytes.net
[/flood]
карма: 0

0
Ответов: 1429
Рейтинг: 50
#15: 2012-11-02 18:20:50 ЛС | профиль | цитата
Ex_, спасибо! А я думаю, чет совсем никто не зашел.
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)