Photoshop 拡張機能から Rails サーバーに画像をアップロードしようとして、2 日間苦労しており、少し助けてくれることを望んでいました。
画像をアップロードするために使用しているコードは次のようになります。
doc.selection.fill(color);
var saveOptions:JPEGSaveOptions = new JPEGSaveOptions();
doc.saveAs(File.applicationStorageDirectory, saveOptions);
var req:URLRequest;
var UPLOAD_URL:String = "http://localhost:3000/designs";
var myFile:File = File.applicationStorageDirectory.resolvePath("Untitled-1.jpg");
var file:FileReference = FileReference(myFile);
var urlRequest:URLRequest = new URLRequest();
urlRequest.url = UPLOAD_URL;
urlRequest.method = URLRequestMethod.POST;
urlRequest.contentType = "image/jpeg";
urlRequest.requestHeaders.push(new URLRequestHeader('Cache-Control', 'no-cache'));
var params:URLVariables = new URLVariables();
params['design[option]'] = 'iphone';
params['design[title]'] = 'title';
params['design[description]'] = 'description';
params['design[app_store_url]'] = 'app_store_url';
params['design[tags]'] = 'tags';
params['design[temp_number]'] = 1;
urlRequest.data = params;
file.upload(urlRequest, "design[image0]");
次のような出力パラメーター (rails サーバーから取得):
Parameters: {
"Filename"=>"Untitled-1.jpg",
"design"=>{
"option"=>"iphone",
"title"=>"title",
"app_store_url"=>"app_store_url",
"tags"=>"tags",
"temp_number"=>"1",
"description"=>"description",
"image0"=>#<ActionDispatch::Http::UploadedFile:0x007fa24150c720
@original_filename="Untitled-1.jpg",
@content_type="application/octet-stream",
@headers="Content-Disposition: form-data;
name=\"design[image0]\";
filename=\"Untitled-1.jpg\"\r\nContent-Type: application/octet-stream\r\n",
@tempfile=#<File:/var/folders/46/5zb4wnk14c9gtw_lfggfrvy40000gn/T/RackMultipart20120821-8131-1of709u>>
},
"Upload"=>"Submit Query"}
それはデザインをうまく作成し、すべてのパラメーターを入れます。ただし、画像は空白のままです。
これらのパラメーターと私が通常取得するパラメーターとの唯一の違いは、コンテンツ タイプです。しかし、それはこのように影響するべきではありませんよね?