我正在开发一个带有rails的Shopify应用程序,用于修改商家商店的当前主题。
我尝试从应用创建表单上传图片(来自您计算机的本地文件),并直接将其保存在主题/资源中
我已尝试过这个:
控制器:
def uploadImage
if request.post?
p = ShopifyAPI::Asset.new
p.key = "assets/image.png"
p.attach(params[:image])
p.save
end
end
查看:
<form method="POST" action="uploadImage">
<input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
<label>Upload Image</label>
<input type="file" name="image">
<button type="submit" name="button">Upload</button>
</div>
</form>
但它没有用,有什么想法吗?
谢谢。
答案 0 :(得分:0)
On the documentation page,没有POST
个端点,这意味着资产无法自行创建,必须由主题拥有
该文档可能无法完成。可以比较变体,因为它们必须由产品拥有;对于此特定部分,他们会记录POST /admin/products/#{id}/variants.json
(他们应该记录资产POST /admin/themes/#{id}/assets.json
)
You have your solution in the code source,您需要指定主题ID,因此这应该有效:
p = ShopifyAPI::Asset.new(key: "assets/image.png", theme_id: _your_theme_id)
p.attach(params[:image])
p.save
尚未尝试过,因此您可能需要先在本地保存文件,然后使用以下代码替换代码中的附加行:
p.attach(File.read('local/path/to/your/file.ext'))