是否可以使用MEDIA_SIDELOAD_IMAGE上传本地文件?

时间:2015-02-17 作者:SinisterBeard

我想添加media_sideload_image 以编程方式上载文件。当图像URL联机时,我可以使用它(例如。http://etc...) 但当它是来自硬盘或网络驱动器的本地文件时(例如。file://etc).我得到错误Catchable fatal error: Object of class WP_Error could not be converted to string.

这可能吗?我想一定有办法解决这个问题,因为Wordpress管理站点可以上传本地文件。

1 个回复
SO网友:yunieski dieguez garcia

可以使用media\\u handle\\u upload()函数执行此操作。这是一个工作示例,您可以将其用作需求指南:

首先创建HTML表单

<form method="post" id="uploadCartaAnno" enctype=\'multipart/form-data\'>
                        <input class="text-input" name="carta_ano" type="file" id="carta_ano" multiple="false"/>
                        <?php wp_nonce_field( \'my_image_upload\', \'my_image_upload_nonce\' ); ?>
                        <input name="updatecarta_ano" type="submit" id="updatecarta_ano" class="hp-btn-file -icon-upload" value="Subir formato" />
                        <input name="action" type="hidden" id="action" value="update-user" />
                    </form>
然后是您的PHP代码

if (
                        isset( $_POST[\'my_image_upload_nonce\'] )
                        && wp_verify_nonce( $_POST[\'my_image_upload_nonce\'], \'my_image_upload\' )
                      ) {
                        // The nonce is valid and it is safe to continue.

                        // These files need to be included as dependencies when on the front end.
                        require_once( ABSPATH . \'wp-admin/includes/image.php\' );
                        require_once( ABSPATH . \'wp-admin/includes/file.php\' );
                        require_once( ABSPATH . \'wp-admin/includes/media.php\' );

                        // Let WordPress handle the upload.
                        
                        $attachment_id = media_handle_upload( \'carta_ano\', $comId );

                        if ( is_wp_error( $attachment_id ) ) {
                          // There was an error uploading the image.
                        } else {
                          // The image was uploaded successfully!
                        }

                      } else {

                        // Show some error message if nonce fails.
                      }

结束

相关推荐

在wp.media对象中呈现上载的文件

这个问题我已经被问了好几次了,我没有看到任何回应。我有一个wp。媒体对象(上传对话框),我在中使用它将上传到帖子的内容存储为元元素。它工作正常,除了ul。上传时附件框架未刷新,请参见屏幕截图我必须手动刷新页面才能显示新文件(在我的截图示例中为pdf.pdf)。是否有上载的事件可以挂接到文件列表框架并重新渲染视图?谢谢EDIT: I abstracted out the code so that I can demonstrate the issue. N.B. this is using extremel