Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как отправить письмо с пристегнутой картинкой? (http://www.flasher.ru/forum/showthread.php?t=146935)

cleptoman 23.11.2010 22:34

10 плеер FileReference.save

Хомяк 23.11.2010 22:51

Про php, посмотрите на их форуме, не может быть что бы эта тема там не поднималась. Да и поиск там есть, может не на всех страницах только.
Про FileReference. Действительно, эта штука для отправки локальных файлов. А как отправлять созданные изображения я не знаю, не приходилось делать. Но думаю, вы не хуже меня можете погуглить :).

cleptoman серьёзно? В хелпе так :"...Открывает диалоговое окно, позволяющее пользователю сохранить файл в локальной файловой системе...Этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает ошибка...".

gloomyBrain 24.11.2010 00:39

Цитата:

не нашел главного ответа - в каком формате php скрипт должен принимать файл. Просто очередным значением в массиве POST
По идее - в массиве $_FILES

По поводу того, как отправить картинку - я писал об этом в блоге

cleptoman 24.11.2010 00:43

хомяк, а я что, где то оспорил хелп? )

Хомяк 24.11.2010 07:06

cleptoman я не понял вас. Автор темы хочет отправить созданное в приложении содержимое и какую то еще инфу на сервер, а вы предлагаете ему сохранить файл в локальной файловой системе?

cv' 25.11.2010 19:10

Спасибо всем, кто откликнулся. Все получилось! =)

Так выглядит код сервера:

PHP код:

<?

    $to 
$_POST["to"] ? $_POST["to"] : "mail@mail.net";
    
$from $_POST["from"] ? $_POST["from"] : "mail@mail.com";
    
$message2 $_POST["message"] ? $_POST["message"] : "some message";

    
$subject "?????? ???????";

    
$fileatt      $_FILES['fileatt']['tmp_name'];
    
$fileatt_type $_FILES['fileatt']['type'];
    
$fileatt_name $_FILES['fileatt']['name'];

    
$file fopen($fileatt,'rb');
    
$data fread($file,filesize($fileatt));
    
fclose($file);

    
$headers "From:$from";
    
$headers .= "\nReply-To:$from";

    
// Generate a boundary string
    
$semi_rand md5(time());
    
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";

    
// Add the headers for a file attachment
    
$headers .= "\nMIME-Version: 1.0\n" .
                
"Content-Type: multipart/mixed;\n" .
                
" boundary=\"{$mime_boundary}\"";

    
// Add a multipart boundary above the plain message
    
$message  "This is a multi-part message in MIME format.\n\n" .
               
"--{$mime_boundary}\n" .
               
"Content-Type: text/html; charset=\"utf-8\"\n" .
               
"Content-Transfer-Encoding: 7bit\n\n" .
               
$message2 "\n\n";

    
// Base64 encode the file data
    
$data chunk_split(base64_encode($data));

    
// Add file attachment to the message
    
$message .= "--{$mime_boundary}\n" .
                
"Content-Type: {$fileatt_type};\n" .
                
" name=\"{$fileatt_name}\"\n" .
                
"Content-Transfer-Encoding: base64\n\n" .
                
$data "\n\n" .
                
"--{$mime_boundary}--\n";

    
mail($to,$subject,$message,$headers);
?>

И вот так, (большое спасибо gloomyBrain), клиент:

Код AS3:

import net.request.field.File;
import net.request.field.MIMEType;
import net.request.Request;
import org.bytearray.smtp.encoding.JPEGEncoder;
import flash.net.URLRequestMethod;
import flash.net.URLLoader;
 
var myEncoder = new JPEGEncoder( 900 );
var myCapStream:ByteArray = myEncoder.encode (bitmapData);
 
var request:Request = new Request("http://server.net/mail.php", {
        to:"mail@mail.ru",
        from:"mail@mail.net",
        message:"some message"
},URLRequestMethod.POST);
var file:File = new File("fileatt", myCapStream, "image" + new Date().getTime() + ".jpg", MIMEType.IMAGE_JPEG);
request.files.push(file);
var loader:URLLoader = new URLLoader();
loader.load(request.toURLRequest());
loader.addEventListener(Event.COMPLETE, report);


cleptoman 25.11.2010 19:36

2 Хомяк. я про пост №10


Часовой пояс GMT +4, время: 09:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.