Pytanie w sprawie http, post, actionscript-3, file-upload – prześlij plik zip za pomocą HTTP POST za pomocą ActionScript 3.0

2

Mam plik zip, który jest tworzony za pomocą przeciągania i upuszczania w widoku w mojej aplikacji Flex 4.6 na pulpicie.

Spowoduje to uruchomienie usługi, która automatycznie prześle plik zip.

Mogę użyć następującego kodu do wysłania metadanych o pliku zip na serwer.

        var urlRequest:URLRequest = new URLRequest(PUBLISH_ZIP_FILE_URL);
        // set to method=POST
        urlRequest.method = URLRequestMethod.POST;          



        var params:URLVariables = new URLVariables();



        params['data[File][title]'] = 'Title1';
        params['data[File][description]'] = 'desc';         
        // params['data[File][filename]'] =  I am not sure exactly what to use here 
        // If this is a webpage, I expect to use input type="file" with the name as data[File][filename]


        urlRequest.data = params;

        addLoaderListeners();

        // set it such that data format is in variables
        loader.dataFormat = URLLoaderDataFormat.VARIABLES;

        loader.load(urlRequest);

przeczytałemhttps://startoverflow.com/questions/8837619/using-http-post-to-upload-a-file-to-a-website

Jednak natychmiast zaczynają się od ByteArray, który nie jestem pewien, jak w ogóle przekonwertować mój plik zip.

Proszę doradź.

Twoja odpowiedź

1   odpowiedź
4

Żenujące, ale znalazłem odpowiedź 42 minuty po opublikowaniu pytania.

Trochę rozwiązywania problemów z gumową kaczką tutaj.

http://www.codinghorror.com/blog/2012/03/rubber-duck-problem-solving.html

Krótka odpowiedź: użyj klasy plików, a konkretnie metodyPrzekazać plik który jest przedłużony odFileReference klasa.

Długa odpowiedź:

        var urlRequest:URLRequest = new URLRequest(PUBLISH_ZIP_FILE_URL);
        // set to method=POST
        urlRequest.method = URLRequestMethod.POST;

        var params:URLVariables = new URLVariables();

        params['data[File][title]'] = 'Title1';
        params['data[File][description]'] = 'desc';

        // this is where we include those non file params and data
        urlRequest.data = params;


        // now we upload the file
        // this is how we set the form field expected for the file upload
        file.upload(urlRequest, "data[File][filename]");
@shaunhusain być może nie jesteś świadomy. Ale jest czas na zaakceptowanie własnych odpowiedzi na własne pytanie. Nie mogę zaakceptować, chyba że po 48 godzinach lub coś takiego. Kim Stacks
dzięki za aktualizację hooleyhoop
Jeśli to zadziałało, powinieneś być w stanie zaakceptować własną odpowiedź, po prostu pomaga w uporządkowaniu listy nieodebranych i odpowiedzi. shaunhusain
@kimsia ah dzięki za informacje, o których absolutnie nie wiedziałam shaunhusain

Powiązane pytania