我正在使用PHP和REST API。我正在尝试使用AJAX上传文件并检索缩略图。
的app.yaml
- url: /api/(.*)
script: api/index.php
- url: /.*
script: index.html
Javascript:当用户选择要上传的图像时,会触发此功能。
onFileSelect = function($files) {
for (var i = 0; i < $files.length; i++) {
var upload_url = $http.get('/api/upload/new'); //Create a new upload url
$http.uploadFile({
url: upload_url,
file: $files[i]
}).success(function(pulic_url, status) {
console.log( pulic_url ); //Print the public url of the uploaded file
})
}
}
但这不起作用,我得到的公共网址如下:
http://localhost:8080/_ah/upload/adfrhtbnekj...
当我发出POST请求时,它只打印出index.html文件。这意味着它找不到我的upload_handler.php
我应该在哪里上传upload_handler.php?
答案 0 :(得分:0)
上传处理程序必须在app.yaml文件中作为脚本引用。意思是应该能够像任何其他人一样调用脚本(即发出post / get请求,因为上传代理会像往常一样将[请求]重定向到您的应用程序)。您当前的文件只处理api /和。*到index.html,这意味着当访问/upload_handler.php时,它将被重定向到index.html。
也许你想要类似下面的内容
- url: /upload_handler.php
script: upload_handler.php
或
# next release /(.+\.php)$ will work as well.
- url: /(.+\.php$)
script: \1