<?php /** * Server-side file upload handler from wp-plupload or other asynchronous upload methods. * * @package WordPress * @subpackage Administration */ if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) { define( 'DOING_AJAX', true ); } if ( ! defined( 'WP_ADMIN' ) ) { define( 'WP_ADMIN', true ); } if ( defined( 'ABSPATH' ) ) { require_once ABSPATH . 'wp-load.php'; } else { require_once dirname( __DIR__ ) . '/wp-load.php'; } require_once ABSPATH . 'wp-admin/admin.php'; header( 'Content-Type: text/plain; charset=' . get_option( 'blog_charset' ) ); if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) { require ABSPATH . 'wp-admin/includes/ajax-actions.php'; send_nosniff_header(); nocache_headers(); wp_ajax_upload_attachment(); die( '0' ); } if ( ! current_user_can( 'upload_files' ) ) { wp_die( __( 'Sorry, you are not allowed to upload files.' ) ); } // Just fetch the detail form for that attachment. if ( isset( $_REQUEST['attachment_id'] ) && (int) $_REQUEST['attachment_id'] && $_REQUEST['fetch'] ) { $id = (int) $_REQUEST['attachment_id']; $post = get_post( $id ); if ( 'attachment' !== $post->post_type ) { wp_die( __( 'Invalid post type.' ) ); } switch ( $_REQUEST['fetch'] ) { case 3: ?> <div class="media-item-wrapper"> <div class="attachment-details"> <?php $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ); if ( $thumb_url ) { echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />'; } // Title shouldn't ever be empty, but use filename just in case. $file = get_attached_file( $post->ID ); $file_url = wp_get_attachment_url( $post->ID ); $title = $post->post_title ? $post->post_title : wp_basename( $file ); ?> <div class="filename new"> <span class="media-list-title"><strong><?php echo esc_html( wp_html_excerpt( $title, 60, '…' ) ); ?></strong></span> <span class="media-list-subtitle"><?php echo esc_html( wp_basename( $file ) ); ?></span> <div class="attachment-tools"> <?php if ( current_user_can( 'edit_post', $id ) ) { echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '">' . _x( 'Edit', 'media item' ) . '</a>'; } else { echo '<span class="edit-attachment">' . _x( 'Success', 'media item' ) . '</span>'; } ?> <span class="media-item-copy-container copy-to-clipboard-container edit-attachment"> <button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $file_url; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button> <span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span> </span> </div> </div> </div> </div> <?php break; case 2: add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 ); echo get_media_item( $id, array( 'send' => false, 'delete' => true, ) ); break; default: add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 ); echo get_media_item( $id ); break; } exit; } check_admin_referer( 'media-form' ); $post_id = 0; if ( isset( $_REQUEST['post_id'] ) ) { $post_id = absint( $_REQUEST['post_id'] ); if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) { $post_id = 0; } } $id = media_handle_upload( 'async-upload', $post_id ); if ( is_wp_error( $id ) ) { $message = sprintf( '%s <strong>%s</strong><br />%s', sprintf( '<button type="button" class="dismiss button-link" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">%s</button>', __( 'Dismiss' ) ), sprintf( /* translators: %s: Name of the file that failed to upload. */ __( '“%s” has failed to upload.' ), esc_html( $_FILES['async-upload']['name'] ) ), esc_html( $id->get_error_message() ) ); wp_admin_notice( $message, array( 'additional_classes' => array( 'error-div', 'error' ), 'paragraph_wrap' => false, ) ); exit; } if ( $_REQUEST['short'] ) { // Short form response - attachment ID only. echo $id; } else { // Long form response - big chunk of HTML. $type = $_REQUEST['type']; /** * Filters the returned ID of an uploaded attachment. * * The dynamic portion of the hook name, `$type`, refers to the attachment type. * * Possible hook names include: * * - `async_upload_audio` * - `async_upload_file` * - `async_upload_image` * - `async_upload_video` * * @since 2.5.0 * * @param int $id Uploaded attachment ID. */ echo apply_filters( "async_upload_{$type}", $id ); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
css | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
includes | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
maint | Folder | 0755 |
|
|
network | Folder | 0755 |
|
|
user | Folder | 0755 |
|
|
.rnd | File | 1 KB | 0644 |
|
about.php | File | 15.95 KB | 0644 |
|
admin-ajax.php | File | 5.03 KB | 0644 |
|
admin-footer.php | File | 2.77 KB | 0644 |
|
admin-functions.php | File | 406 B | 0644 |
|
admin-header.php | File | 8.86 KB | 0644 |
|
admin-post.php | File | 2.02 KB | 0644 |
|
admin.php | File | 12.27 KB | 0644 |
|
async-upload.php | File | 4.71 KB | 0644 |
|
authorize-application.php | File | 10.09 KB | 0644 |
|
comment.php | File | 11.35 KB | 0644 |
|
contribute.php | File | 5.59 KB | 0644 |
|
credits.php | File | 3.75 KB | 0644 |
|
custom-background.php | File | 416 B | 0644 |
|
custom-header.php | File | 426 B | 0644 |
|
customize.php | File | 10.87 KB | 0644 |
|
edit-comments.php | File | 14.38 KB | 0644 |
|
edit-form-advanced.php | File | 28.86 KB | 0644 |
|
edit-form-blocks.php | File | 12.96 KB | 0644 |
|
edit-form-comment.php | File | 8.34 KB | 0644 |
|
edit-link-form.php | File | 6.21 KB | 0644 |
|
edit-tag-form.php | File | 10.44 KB | 0644 |
|
edit-tags.php | File | 21.92 KB | 0644 |
|
edit.php | File | 19.48 KB | 0644 |
|
erase-personal-data.php | File | 7.33 KB | 0644 |
|
error_log | File | 12.54 MB | 0644 |
|
export-personal-data.php | File | 7.75 KB | 0644 |
|
export.php | File | 11.02 KB | 0644 |
|
freedoms.php | File | 4.5 KB | 0644 |
|
import.php | File | 7.48 KB | 0644 |
|
index.php | File | 7.68 KB | 0644 |
|
install-helper.php | File | 6.8 KB | 0644 |
|
install.php | File | 17.1 KB | 0644 |
|
link-add.php | File | 938 B | 0644 |
|
link-manager.php | File | 4.26 KB | 0644 |
|
link-parse-opml.php | File | 2.63 KB | 0644 |
|
link.php | File | 2.89 KB | 0644 |
|
load-scripts.php | File | 2.02 KB | 0644 |
|
load-styles.php | File | 2.92 KB | 0644 |
|
media-new.php | File | 3.18 KB | 0644 |
|
media-upload.php | File | 3.49 KB | 0644 |
|
media.php | File | 819 B | 0644 |
|
menu-header.php | File | 9.83 KB | 0644 |
|
menu.php | File | 16.67 KB | 0644 |
|
moderation.php | File | 307 B | 0644 |
|
ms-admin.php | File | 196 B | 0644 |
|
ms-delete-site.php | File | 4.19 KB | 0644 |
|
ms-edit.php | File | 216 B | 0644 |
|
ms-options.php | File | 229 B | 0644 |
|
ms-sites.php | File | 215 B | 0644 |
|
ms-themes.php | File | 217 B | 0644 |
|
ms-upgrade-network.php | File | 219 B | 0644 |
|
ms-users.php | File | 215 B | 0644 |
|
my-sites.php | File | 4.74 KB | 0644 |
|
nav-menus.php | File | 48.12 KB | 0644 |
|
network.php | File | 5.39 KB | 0644 |
|
options-discussion.php | File | 15.4 KB | 0644 |
|
options-general.php | File | 21.51 KB | 0644 |
|
options-head.php | File | 548 B | 0644 |
|
options-media.php | File | 6.35 KB | 0644 |
|
options-permalink.php | File | 21.21 KB | 0644 |
|
options-privacy.php | File | 9.95 KB | 0644 |
|
options-reading.php | File | 10.03 KB | 0644 |
|
options-writing.php | File | 9.1 KB | 0644 |
|
options.php | File | 13.45 KB | 0644 |
|
php.ini | File | 92 B | 0644 |
|
plugin-editor.php | File | 13.42 KB | 0644 |
|
plugin-install.php | File | 6.96 KB | 0644 |
|
plugins.php | File | 30.01 KB | 0644 |
|
post-new.php | File | 2.7 KB | 0644 |
|
post.php | File | 9.97 KB | 0644 |
|
press-this.php | File | 2.34 KB | 0644 |
|
privacy-policy-guide.php | File | 3.67 KB | 0644 |
|
privacy.php | File | 2.48 KB | 0644 |
|
profile.php | File | 283 B | 0644 |
|
revision.php | File | 5.71 KB | 0644 |
|
setup-config.php | File | 17.48 KB | 0644 |
|
site-editor.php | File | 7.05 KB | 0644 |
|
site-health-info.php | File | 3.99 KB | 0644 |
|
site-health.php | File | 10.2 KB | 0644 |
|
term.php | File | 2.2 KB | 0644 |
|
theme-editor.php | File | 15.42 KB | 0644 |
|
theme-install.php | File | 23.37 KB | 0644 |
|
themes.php | File | 46.95 KB | 0644 |
|
tools.php | File | 3.43 KB | 0644 |
|
update-core.php | File | 45.43 KB | 0644 |
|
update.php | File | 12.79 KB | 0644 |
|
upgrade-functions.php | File | 341 B | 0644 |
|
upgrade.php | File | 5.57 KB | 0644 |
|
upload.php | File | 14.85 KB | 0644 |
|
user-edit.php | File | 39.6 KB | 0644 |
|
user-new.php | File | 23.97 KB | 0644 |
|
users.php | File | 23.29 KB | 0644 |
|
widgets-form-blocks.php | File | 4.97 KB | 0644 |
|
widgets-form.php | File | 19.17 KB | 0644 |
|
widgets.php | File | 1.09 KB | 0644 |
|