Как я Передаю Изображение от Flash до ASP.NET?

В onClick добавить это:

Geocoder gcd = new Geocoder(AndroidGPSTrackingActivity.this, Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1);
if (addresses.size() > 0) 
    System.out.println(addresses.get(0).getLocality());
7
задан JP Hellemons 25 November 2011 в 11:16
поделиться

3 ответа

В этом примере я создал файл Flash с кнопкой на рабочей области. Когда вы нажимаете эту кнопку, Flash отправляет изображение кнопки в файл ASPX, который сохраняет его как JPEG. Как вы увидите, это делается путем рисования DisplayObject в объекте BitmapData , и поэтому вы можете легко заменить ссылку на кнопку чем-либо, унаследованным от DisplayObject. (включая фрагмент ролика, содержащий холст для приложения рисования и т. Д.).

Сначала я проведу вас через элемент Flash, а затем через серверную часть .NET.

Flash

Чтобы отправить сгенерированный подобный образ из Flash в ASP.NET (или любой другой бэкэнд) вам понадобится пара сторонних библиотек. Нам понадобится кодировщик JPEG (которого нет во Flash, но в последних версиях Flex есть), которую мы можем получить из библиотеки ядра AS3 http://code.google.com/p/as3corelib/ . Нам также понадобится кодировщик base64 для отправки данных по сети. Я воспользуюсь одним из Dynamic Flash, доступным по адресу http://dynamicflash.com/goodies/base64/ .

Загрузите их и извлеките в удобное место на жестком диске (например, в папку C: \ lib).

Я создал новый файл AS3 Flash и сохранил его как uploader.fla . Я добавил компонент кнопки на сцену и назвал его btnUpload . Затем я отредактировал настройки ActionScript и добавил свою папку c: \ lib в путь к классам. Затем я присвоил документу имя класса Uploader и сохранил файл.

Затем я создал файл ActionScript и добавил к нему следующий код: Этот код предполагает, что вы хотите загрузить jpeg с качеством 100% и что сценарий, который будет получать данные, называется upload.aspx и находится в корне сайта.

ASP.NET

В корне моего веб-сайта я создал веб-форму с именем upload.aspx. В файле .aspx я удалил все содержимое, кроме директивы page. Его содержимое выглядит следующим образом:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %>

Затем в CodeBehind я добавил следующее:

using System;
using System.IO;

public partial class upload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get the data from the POST array
        string data = Request.Form["imageData"];

        // Decode the bytes from the Base64 string
        byte[] bytes = Convert.FromBase64String(data);

        // Write the jpeg to disk
        string path = Server.MapPath("~/save.jpg");
        File.WriteAllBytes(path, bytes);

        // Clear the response and send a Flash variable back to the URL Loader
        Response.Clear();
        Response.ContentType = "text/plain";
        Response.Write("ok=ok");
    }
}

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

13
ответ дан 6 December 2019 в 15:29
поделиться

Если вам нужно манипулировать изображением, если вы можете получить байт [] или поток POST-файла, вы можете создать его изображение, например

MemoryStream mstr = new MemoryStream(myByteArray);
Image myImage = Image.FromStream(mstr);
1
ответ дан 6 December 2019 в 15:29
поделиться

Попросите его опубликовать файлы как стандартную HTML-форму. Вы можете получить доступ к этим файлам в событии Page_Load страницы, на которую он отправляет сообщение, используя следующую коллекцию

Request.Files

Это вернет коллекцию HttpPostedFiles точно так же, как это делает элемент управления FileUpload.

0
ответ дан 6 December 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: