I’ve been struggling for 2 days now, trying to upload an image from a photoshop extension to a rails server and was hoping I could get a bit of help.
The code I’m using to upload the image with looks like this:
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]");
Which outputs parameters like this (taken from the rails server):
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"}
It creates the design nicely and puts all the parameters in, except the image, which persists to be blank.
The only difference I can see between these parameters and the ones I normally get is the content-type. But that shouldn’t affect it like this, should it?
I managed to do it. It was an error in the backend