Php 使用Slim框架从POST获取要上载到解析的文件
在发布了一个带有Slim框架的表单之后,我目前正试图上传一个要解析的文件。由于某些原因,我获取了文件名,但无法使用当前设置获取文件。我也尝试过寻找$\u文件数组,但什么也找不到。有什么我遗漏的吗?以下是我目前的路线:Php 使用Slim框架从POST获取要上载到解析的文件,php,forms,parse-platform,slim,Php,Forms,Parse Platform,Slim,在发布了一个带有Slim框架的表单之后,我目前正试图上传一个要解析的文件。由于某些原因,我获取了文件名,但无法使用当前设置获取文件。我也尝试过寻找$\u文件数组,但什么也找不到。有什么我遗漏的吗?以下是我目前的路线: $app->group('/settings', function () use ($app) { $app->post('/update(/:settingsId)', function ($settingsId = null) use ($app) {
$app->group('/settings', function () use ($app) {
$app->post('/update(/:settingsId)', function ($settingsId = null) use ($app) {
$query = new ParseQuery("Settings");
// Get a specific object:
$settings = $query->get($settingsId);
// Set values:
$settings->set("appName", $app->request->post('appName'));
$settings->set("directorName", $app->request->post('directorName'));
$settings->set("mkUsername", $app->request->post('mkUsername'));
$settings->set("mkPassword", $app->request->post('mkPassword'));
error_log(print_r($_FILES, true));
// see if we have a file
if ($app->request->post('appBackgroundImage')) {
// save file to Parse
$appBackgroundImage = ParseFile::createFromData(file_get_contents($_FILES["file"]["tmp_name"]), $app->request->post('appBackgroundImage'));
$appBackgroundImage->save();
$settings->set("appBackgroundImage", $appBackgroundImage);
}
try {
$settings->save();
$app->redirect('/settings');
} catch (ParseException $ex) {
$app->redirect('/settings/' . $ex->getCode());
}
});
});
我不确定这是否是实现这一目标的完全正确的方法,但这就是我实现这一目标的方式。如果有人有更好的主意,我会洗耳恭听 我将其添加到我的JS中,因此它实际上通过AJAX发布表单,并将文件与正常表单内容一起推送
// File Uploader
var form = document.getElementById('settings-form');
form.onsubmit = function() {
var formData = new FormData(form);
formData.append('appBackgroundImage', file);
var xhr = new XMLHttpRequest();
// Add any event handlers here...
xhr.open('POST', form.getAttribute('action'), true);
xhr.send(formData);
return false; // To avoid actual submission of the form
}