php my_media_handle_upload()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php my_media_handle_upload()相关的知识,希望对你有一定的参考价值。
add_action( 'wpcf7_mail_sent', 'hookToProcessFormData', $priority = 10, $accepted_args = 1 );
function hookToProcessFormData($contact_form) {
// передаваемый объект $contant_form позволит определить
// та ли эта форма, которая требует обработки
if ($contact_form->id() == 100) {
// Позаботимся о картинке
// Получим объект Submission,
// откуда можно извлечь информацию о новом имени загруженного файла
$SBM = WPCF7_Submission::get_instance();
$uploaded = $SBM->uploaded_files();
// теперь по имени поля извлечем адрес и загрузим файл
// в медиа библиотеку WP
if (!empty($uploaded['partner-card'])) {
$picture_id = my_media_handle_upload($uploaded['partner-card'], false);
} else {
$picture_id = 0;
}
update_field('qwert', $picture_id, 'option');
}
}
/* загрузка картинки по заданному URL or path */
function my_media_handle_upload(
$file_url,
$post_id,
$post_data = array(),
$overrides = array( 'test_form' => false )) {
$time = current_time('mysql');
if ( $post = get_post($post_id) ) {
if ( substr( $post->post_date, 0, 4 ) > 0 )
$time = $post->post_date;
}
//получение файла и создание его временной копии
$file = file_get_contents($file_url);
if (!empty($file)) {
$tmpfname = tempnam(sys_get_temp_dir(), 'EX_');
$temp = fopen($tmpfname, "wb");
fwrite($temp, $file);
fclose($temp);
//имитируем загрузку временного файла
$file_id = 'myfile';
$_FILES[$file_id] = array(
'name' => basename($file_url),
'type' => mime_content_type($tmpfname),
'size' => filesize($tmpfname),
'tmp_name' => $tmpfname,
);
} else {
return 0;
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-admin/includes/file.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-admin/includes/image.php';
$name = $_FILES[$file_id]['name'];
$file = _wp_handle_upload($_FILES[$file_id], $overrides, $time, 'user-export');
if ( isset($file['error']) ) {
return new WP_Error( 'upload_error', $file['error'] );
}
$name_parts = pathinfo($name);
$name = trim( substr( $name, 0, -(1 + strlen($name_parts['extension'])) ) );
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$title = $name;
$content = '';
$excerpt = '';
if ( 0 === strpos( $type, 'image/' ) && $image_meta = @wp_read_image_metadata( $file ) ) {
if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) {
$title = $image_meta['title'];
}
if ( trim( $image_meta['caption'] ) ) {
$excerpt = $image_meta['caption'];
}
}
// Construct the attachment array
$attachment = array_merge( array(
'post_mime_type' => $type,
'guid' => $url,
'post_parent' => $post_id,
'post_title' => $title,
'post_content' => $content,
'post_excerpt' => $excerpt,
), $post_data );
// This should never be set as it would then overwrite an existing attachment.
unset( $attachment['ID'] );
// Save the data
// $id = wp_insert_attachment($attachment, $file, $post_id);
// if ( !is_wp_error($id) ) {
// wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
// }
return $url;
}
以上是关于php my_media_handle_upload()的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 11编辑php是,支持php文件名为.php5和.php4,如何设置能让其也支持.php呢?