我有一个带有类型文件(多个)的 html 输入:
<input id="image" type="file" name="dog[]" multiple>
我如何使用解析关系将它们上传到带有“图像”和“狗”表的解析?
或者有更好的方法来存储关系吗?请指教。谢谢
代码尝试:
<?php
require 'vendor/autoload.php';
session_start();
use Parse\ParseClient;
use Parse\ParseUser;
use Parse\ParseSessionStorage;
use Parse\ParseObject;
use Parse\ParseFile;
use Parse\ParseGeoPoint;
ParseClient::initialize('xxx', 'yyy', 'zzz');
ParseClient::setStorage(new ParseSessionStorage());
$currentUser = ParseUser::getCurrentUser();
$filearray = [];
$count = 0;
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
foreach ($_FILES['dog']['name'] as $f => $name) {
if ($_FILES['dog']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['dog']['error'][$f] == 0) {
$tmp = $_FILES['dog']['tmp_name'][$count];
$count = $count + 1;
$file = ParseFile::createFromData(file_get_contents($tmp), $_FILES['dog']['name']);
$file->save();
array_push($filearray, $file);
}
}
}
$dogobj = new ParseObject("Dog");
$dogobj->setArray("dogimage", $filearray);
try {
$dogobj->save();
} catch (ParseException $ex) {
echo 'Failed to create new object, with error message: ' . $ex->getMessage();
}
编辑: 感谢回复,这是我发现的错误
注意:未定义索引:第 31 行 ../index.php 中的 restaurant_images
警告:第 31 行的 ../index.php 中为 foreach() 提供的参数无效 使用 objectId 创建的新对象:fz1hnCembE
第 31 行指的是 foreach ($_FILES['restaurant']['name'] as $f => $name) {
如您在上面的消息中看到的,我保存成功的对象,找不到图像
最佳答案
确保表单的属性enctype
的值为multipart/form-data
否则超全局数组$_FILES
将为空
<form action="" method="post" enctype="multipart/form-data">
<input id="image" type="file" name="dog[]" multiple>
<input type="submit"/>
</form>
<?php
if (isset($_FILES['dog']) === true) {
$dog = $_FILES['dog'];
$limit = count(current($dog));
for ($i = 0; $i < $limit; $i++) {
$error = $dog['error'][$i];
if ($error === UPLOAD_ERR_OK) {
$name = $dog['name'][$i];
$type = $dog['type'][$i];
$tmp_name = $dog['tmp_name'][$i];
$size = $dog['size'][$i];
//other code
}
}
}
?>
关于php - 如何保存多个文件对象以使用php sdk解析后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32475890/