Вверх ↑
Этот топик читают: Гость
Ответов: 95
Рейтинг: 10
#1: 2010-02-09 13:32:34 ЛС | профиль | цитата
В общем такая не простая для меня ситуация... Есть картинка из потока, нужно сохранить её на фотохостинг[url] http://lohotronov.net.ru/papka/[/url] POST запросом после клика на кнопку
Вот форма загрузки картинок на фотохостинге

<form method="post" name="12345" enctype="multipart/form-data" onsubmit="return false">
<div id="axaj-upload">

<hr>
<input class="form" type="file" size="40" id="myupl"><br>

<br>
<input class="form1" type="button" value="Загрузить" onclick="upload()">&nbsp;<input class="form1" type="reset" value="Убрать" /><br>

не могу понять как это сделать....
сохранить картинку в фаил, потом отправить её на хостинг, потом удалить фаил картинки, еще и получить обратную ссылку в окне, все это нужно осуществить нажатием одной кнопки...
Это вообще реально? Как хотя бы примерно это будет выглядеть?
Облазил весь форум, ничего не смог найти надеюсь на помощь...
Может чтоб было понятней нужно выложить еще какие то коды?

Вот моя чудо версия
Make(delphi)
ver(4.03 build 181)
Add(MainForm,2953706,140,84)
{
Width=388
Height=129
}
Add(Button,3864374,140,147)
{
Left=10
Top=30
Width=65
Caption="Отправить"
link(onClick,4437017:doBuild,[])
}
Add(HTTP_FileUpload,4437017,294,147)
{
URL="lohotronov.net.ru/papka/index.php"
Host="lohotronov.net.ru"
Name="12345"
link(onBuild,13686776:doWork1,[])
link(FileName,6239076:Text,[])
}
Add(ChildForm,13686776,434,147)
{
}
BEGIN_SDK
Add(EditMulti,14941172,21,21)
{
WorkCount=1
link(doWork1,11626075:doEvent1,[(119,27)(119,132)])
}
Add(RichEdit,12120453,217,126)
{
Left=10
Top=10
Width=495
Height=165
}
Add(MainForm,7591033,217,49)
{
Left=35
Top=105
Width=526
Height=218
Visible=1
Caption="IMG-Life"
Point(onClose)
Point(doVisible)
}
Add(Hub,11626075,147,126)
{
link(onEvent1,12120453:doAdd,[])
link(onEvent2,7591033:doVisible,[(189,139)(189,83)])
}
END_SDK
Add(Memo,6239076,294,63)
{
Left=90
Top=10
Width=280
Strings=#13:Путь до файла|
}

карма: 1

0
файлы: 1code_16842.txt [361B] [114]
Ответов: 14
Рейтинг: 1
#2: 2010-02-09 22:57:02 ЛС | профиль | цитата
Вот мои попытки:

code_16853.txt

только как ещё туда добавить muiltipart/form data

xxx=0
thumb_size=500


а то пишет, что размер превью должен быть числом (thumb_size)
карма: 1

0
файлы: 1code_16853.txt [1009B] [94]
Ответов: 95
Рейтинг: 10
#3: 2010-02-09 23:16:26 ЛС | профиль | цитата
Gеnius
Потому что на хостинге есть скрытые за ненадобностью пункты настройки при загрузке, раньше были галки создать превью и т.д.... но я их скрыл за ненадобностью
Вот содержимое файла upload.php

<?php
require_once "lib/JsHttpRequest.php";
function resizeimаgе($filename, $newfile, $newwidth, $newheight) {
$exp=strrchr($filename, ".");
list($width, $height) = getimagesize($filename);
if($width > $height && $newheight < $height){
$newheight = $height / ($width / $newwidth);
} else if ($width < $height && $newwidth < $width) {
$newwidth = $width / ($height / $newheight);
} else {
$newwidth = $width;
$newheight = $height;
}
$thumb = imagecreatetruecolor($newwidth, $newheight);
if ($exp==".jpg" or $exp==".JPG" or $exp==".jpeg" or $exp==".JPEG")
$source = imagecreatefromjpeg($filename);
if ($exp==".png" or $exp==".PNG")
$source = imagecreatefrompng($filename);
if ($exp==".gif" or $exp==".GIF")
$source = imagecreatefromgif($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb, $newfile);
return true;
imagedestroy($thumb);
imagedestroy($source);
}
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$xxx = $_REQUEST['xxx'];
$upload_url = $_REQUEST['url'];
$thumb_size = $_REQUEST['thumb_size'];
$upl = $_FILES['upl'];
if (!is_numeric($thumb_size))
die("Ошибка, размер превью должен быть числом <a href='index.php' class='text2'> Назад</a>");
if (!is_numeric($xxx) and $xxx!="")
die("Ошибка <a href='index.php' class='text2'> Назад</a>");
$ext = array("jpg", "jpeg", "JPG", "JPEG", "gif", "GIF", "png", "PNG");
$file_name=$upl['name'];
if ($upload_url!="")
$file_name=$upload_url;
if (!in_array(end(explode(".", $file_name)), $ext))
die("Это не картинка! <a href='index.php' class='text2'> Назад</a>");
$file_name=md5(time().rand().time());
if ($upload_url!="")
$file_ext=explode(".", $upload_url);
else
$file_ext=explode(".", $upl['name']);
if ($xxx==1)
$url = $file_name."_xxx.".end($file_ext);
else
$url = $file_name.".".end($file_ext);
$http_url = explode("/", $_SERVER['REQUEST_URI']);
foreach($http_url as $key => $val) {
if (end($http_url)!=$val)
$http .= $val."/";
}
$file_to_upload = $upl['tmp_name'];
if (isset($upload_url)){
$file_to_upload = $upload_url;
}

$http_url = "http://".$_SERVER['HTTP_HOST'].$http."upload_image/".$url;
$http_thumb_url = "http://".$_SERVER['HTTP_HOST'].$http."upload_image/thumb/".$url;
if (copy ($file_to_upload, "upload_image/".$url)) {
resizeimаgе("upload_image/".$url, "upload_image/thumb/".$url, $thumb_size, $thumb_size) or die("Error!");
$result = "<center><p>Ваше изображение успешно загружено <br> <a href='index.php' class='text2'> Загрузить еще</a> <br><center> <!--Frame WMbonus.org-->
<iframe src='http://www.wmbonus.org/frame.php?pid=2033' width='100' height='80' vspace='0' hspace='0' marginwidth='0' marginheight='0' scrolling='no' frameborder='0'></iframe>
<!--End Frame WMbonus.org--></center></p>";
$result .= "<a rel='lightbox' href='$http_url'><img src='$http_thumb_url' border=0></a><br><br>";
if ($xxx==1)
$result = "<p>Изображение доступно только для лиц достигших 18 лет <br> <a href='index.php' class='text2'> Загрузить еще</a></p><a rel='lightbox' href='$http_url'><img src='$http_thumb_url' border=0></a><br><br>";
$result .= "<font>BBCode (для форумов):</font><br>";
$result .= "<input class='form' type=\"text\" size=\"60\" onclick=\"this.select()\" value=\"[url=".$http_url."][img]".$http_thumb_url."[/img][/url]\"><br><br>";
$result .= "<font>HTML-код (для веб-страниц):</font><br>";
$result .= "<input class='form' type=\"text\" size=\"60\" onclick=\"this.select()\" value=\"<a href='$http_url' target=_blank><img src='$http_thumb_url' border=0></a>\"><br><br>";
$result .= "<font>Прямой адрес картинки:</font><br>";
$result .= "<input class='form' type=\"text\" size=\"60\" onclick=\"this.select()\" value=\"$http_url\"><br><br> </center>";
echo $result;
}
else
die("Ошибка!)");

?>
А вот скрытые коды "куда ставится галка" в index.php


<td colspan="4" id = "settings">
<br>

<p style="font-size: 14px;"><input class="form" TYPE="text" id="thumb_size" size="5 " value="500" style="display:none"></p>
<p style="font-size: 14px;" style=" display:none "><input class="form" style="display:none" TYPE="checkbox" id="xxx" value="0" onclick="if(this.value==1) {this.value=0} else {this.value=1}"></p>
<p style="font-size: 12px;"></p>
<br>
</td>
карма: 1

0
файлы: 1code_16854.txt [399B] [127]
Ответов: 14
Рейтинг: 1
#4: 2010-02-09 23:23:59 ЛС | профиль | цитата
А может кто-нибудь сказать как пользоваться точками VarsValue и VarsList в вики нет ничего про это
карма: 1

0
Ответов: 95
Рейтинг: 10
#5: 2010-02-09 23:26:12 ЛС | профиль | цитата
Gеnius могу убрать value="500" в коде....

карма: 1

0
Ответов: 14
Рейтинг: 1
#6: 2010-02-09 23:38:32 ЛС | профиль | цитата
узнал как работает! code_16855.txt
------------ Дoбавленo в 23.42:
Вообщем вот:


Add(MainForm,8408417,98,273)
{
Width=421
Height=194
}
Add(HTTP_FileUpload,14753221,266,336)
{
URL="/papka/upload.php"
Host="lohotronov.net.ru"
Name="upl"
VarsList=#10:thumb_size|3:xxx|
Point(VarsValue)
link(onBuild,12473465:doEvent1,[])
link(FileName,6551709:Text,[])
link(VarsValue,9686501:GetData,[(286,324)(314,324)])
}
Add(Button,9126067,203,336)
{
Left=20
Top=55
Width=90
Height=30
Caption="Качать"
link(onClick,14753221:doBuild,[])
}
Add(Edit,6551709,266,280)
{
Left=15
Top=25
Width=285
Font=[aRIAL,10,0,0,1]
Text=""
}
Add(TCP_Client,11070753,364,336)
{
Port=80
IP="68.168.220.18"
link(onRead,4225996:doSearch,[])
}
Add(Hub,12473465,322,336)
{
link(onEvent1,11070753:doOpen,[])
link(onEvent2,11070753:doSend,[(350,349)(350,356)])
}
Add(Button,16305794,147,280)
{
Left=305
Top=25
Caption="..."
link(onClick,16738328:doExecute,[])
}
Add(ODialog,16738328,203,280)
{
link(onExecute,6551709:doText,[])
}
Add(MultiElementEx,9686501,308,280)
{
}
BEGIN_SDK
Add(EditMultiEx,14127821,21,21)
{
VarCount=#7:GetData|
DataCount=#4:Data|5:Data1|
link(GetData,1260066:GetData,[(27,151)(55,151)])
}
Add(DoData,12053862,147,49)
{
Data=Integer(0)
link(onEventData,1224693:doWork2,[])
}
Add(HubEx,1224693,287,49)
{
Angle=3
link(onEvent,1260066:doData,[(291,42)(43,42)(43,55)])
}
Add(EventFromData,1260066,49,49)
{
link(onEvent,9081596:doCompare,[])
}
Add(If_else,9081596,98,49)
{
Op2=String(xxx)
link(onTrue,12053862:doData,[])
link(onFalse,6300632:doCompare,[(138,62)(138,104)])
}
Add(If_else,6300632,147,98)
{
Op2=String(thumb_size)
link(onTrue,10512379:doData,[])
}
Add(DoData,10512379,196,98)
{
Data=String(500)
link(onEventData,1224693:doWork3,[(291,104)])
}
END_SDK
Add(BlockFind,4225996,420,336)
{
IncludeBlock=1
StartBlock="</a>"><br><br><font>Прямой адрес картинки:</font><br><input class='form' type="text" size="60" onclick="this.select()" value=""
EndBlock=""><br><br> </center>"
link(onSearch,7819454:doText,[])
}
Add(Edit,7819454,476,336)
{
Left=15
Top=100
Width=365
Font=[aRIAL,10,0,0,1]
Text=""
}

карма: 1

0
файлы: 1code_16855.txt [1.9KB] [104]
Ответов: 95
Рейтинг: 10
#7: 2010-02-09 23:47:07 ЛС | профиль | цитата
Gеnius
Спасибо огромное, очень выручил, я бы год до этого доходил
карма: 1

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