如何像WordPress和ACF一样在数据库中存储文件?

时间:2018-02-21 作者:mikemike

我正在从Caldera表单中获取输入,该表单包含用户上传。这将作为包含文件名的数组返回:

["company_logo"]=>
array(1) {
  [0]=>
  string(73) "https://example.com/wp-content/uploads/2018/02/logo-1.png"
}
我正在使用ACF管理其他地方的数据,这有效地提供了一种获取和更新数据的好方法。

我怎样才能像WordPress那样存储它?我相信WordPress处理它的方式和存储URL的方式非常不同,因为它会调整大小,ACF会向我返回各种不同大小的图像。

是否需要创建附件?

目前,我以以下方式添加它,它确实会按预期保存,但只是作为文本字符串。我需要它保存的方式与WordPress/ACF通过管理区上传时保存上传文件的方式相同。

update_user_meta( $organisation_id, \'company_logo\', $data[\'company_logo\'][0] );

1 个回复
SO网友:Johansson

ACF不在数据库中存储任何文件,它只是提供了具有用户友好界面的元字段。

但是,您可以自己存储它们。要存储字段,您需要稍微熟悉PHP。下面是通过使用add_post_meta() 功能:

add_post_meta ( $post_id, \'meta_key\', \'meta_value\', $is_unique );
还有其他功能,如update_post_meta() 用于各种用途。如果表单包含文件,则可以使用media_handle_sideload().

假设您有这样一个表单:

<form method="POST" enctype="multipart/form-data">

    <input type="file" name="some-name"/>

</form>
并且您希望将上载的文件保存为附件。我忽略了安全和检查(它们可以在法典中找到),而直接讨论如何做。

您可以使用上述功能处理上传的图像,并存储上传附件的ID:

$image_id = media_handle_upload( \'some-name\', $post_id );

update_user_meta( $organisation_id, \'company_logo\', $image_id  );
现在,您可以访问附件的ID,您可以使用该ID检索任何大小的附件。

结束
如何像WordPress和ACF一样在数据库中存储文件? - 小码农CODE - 行之有效找到问题解决它

如何像WordPress和ACF一样在数据库中存储文件?

时间:2018-02-21 作者:mikemike

我正在从Caldera表单中获取输入,该表单包含用户上传。这将作为包含文件名的数组返回:

["company_logo"]=>
array(1) {
  [0]=>
  string(73) "https://example.com/wp-content/uploads/2018/02/logo-1.png"
}
我正在使用ACF管理其他地方的数据,这有效地提供了一种获取和更新数据的好方法。

我怎样才能像WordPress那样存储它?我相信WordPress处理它的方式和存储URL的方式非常不同,因为它会调整大小,ACF会向我返回各种不同大小的图像。

是否需要创建附件?

目前,我以以下方式添加它,它确实会按预期保存,但只是作为文本字符串。我需要它保存的方式与WordPress/ACF通过管理区上传时保存上传文件的方式相同。

update_user_meta( $organisation_id, \'company_logo\', $data[\'company_logo\'][0] );

1 个回复
SO网友:Johansson

ACF不在数据库中存储任何文件,它只是提供了具有用户友好界面的元字段。

但是,您可以自己存储它们。要存储字段,您需要稍微熟悉PHP。下面是通过使用add_post_meta() 功能:

add_post_meta ( $post_id, \'meta_key\', \'meta_value\', $is_unique );
还有其他功能,如update_post_meta() 用于各种用途。如果表单包含文件,则可以使用media_handle_sideload().

假设您有这样一个表单:

<form method="POST" enctype="multipart/form-data">

    <input type="file" name="some-name"/>

</form>
并且您希望将上载的文件保存为附件。我忽略了安全和检查(它们可以在法典中找到),而直接讨论如何做。

您可以使用上述功能处理上传的图像,并存储上传附件的ID:

$image_id = media_handle_upload( \'some-name\', $post_id );

update_user_meta( $organisation_id, \'company_logo\', $image_id  );
现在,您可以访问附件的ID,您可以使用该ID检索任何大小的附件。

相关推荐

将文件上载到Uploads文件夹时向自定义用户角色发送电子邮件通知

我已经编写了一个自定义php,允许我的模板页面中的用户从前端上传新创建的子文件夹中的文件user_login 作为其名称uploads 文件夹因此,将上载根文件夹,并在用户的子文件夹中存储所有文件。这是我的密码。<form enctype="multipart/form-data" action="" method="POST" class="centered"> <p><