我已经苦苦挣扎了 2 天,试图将图像从 Photoshop 扩展上传到 Rails 服务器,并希望能得到一些帮助。
我用来上传图片的代码如下所示:
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"}
它很好地创建了设计并放入了所有参数,除了图像,它仍然是空白的。
我可以看到这些参数和我通常得到的参数之间的唯一区别是内容类型。但这不应该像这样影响它,不是吗?