2015-11-17 5 views
1

Я работаю над пользовательским веб-сайтом Wordpress. Я создал плагин для пользователей для регистрации и входа в систему, но я застрял с возможностью для пользователей загружать их образ профиля.Загрузка изображения пользователя Wordpress

Это моя форма для загрузки изображений, есть также некоторые другие входы:

<p class="form-row"> 
     <input type="file" name="wp_custom_attachment"id="wp_custom_attachment" size="50" /> 
    </p> 

Теперь на моем сценарии, я публичная функция, которая будет извлекать данные из входов. Я использую функцию wp_upload_bits:

$upload = wp_upload_bits($_FILES['wp_custom_attachment']['name'], null, @file_get_contents($_FILES['wp_custom_attachment']['tmp_name'])); 

Есть ли еще что-то нужно добавить, так это будет работать?

+0

Убедитесь, что добавить пробел между именем и идентификатором. Это может привести к возникновению проблемы – jaggedsoft

+0

@NextLocal - пробел между именем и идентификатором не будет проблемой. – WisdmLabs

+0

@WisdmLabs - на самом деле это похоже на проблему во всем, кроме хром. Вот доказательство концепции: '' ''

foo
'' '' теперь запускается в вашей консоли javascript '' '' document.getElementById («abc») '' '', если это не определено, тогда он работает. Проблема здесь заключается в том, что она является элементом формы, в которой НУЖНО иметь атрибут '' '' name'''', чтобы загрузка работала должным образом. – jaggedsoft

ответ

1

загрузка файлов будет работать только если < форма > элемент имеет собственный набор кодирования и использует POST:

<form enctype="multipart/form-data" action="upload.php" method="POST"> 

загрузки файлов по умолчанию в PHP ограничены максимальным размером 2МБ

Возможно, вы столкнулись с ограничением размера файла на стороне сервера. Редактировать php.ini:

; Maximum allowed size for uploaded files. 
upload_max_filesize = 64M 

; Must be greater than or equal to upload_max_filesize 
post_max_size = 64M 

Если вы используете веб-сервер Apache, вы можете создать файл с именем .htaccess в том же каталоге, что ваши скрипты:

php_value upload_max_filesize 64M 
php_value post_max_size 64M 

Вы также можете поместить это в РНР файлу, который обрабатывает загрузку:

ini_set('post_max_size', '64M'); 
ini_set('upload_max_filesize', '64M'); 

Вам нужно добавить пробел между именем и идентификатором ваших объектов или это предотвратит загрузку работать должным образом при использовании любого браузера, кроме Chrome, Safari, O г Firefox: (загрузка файлов требуется name атрибут)

<input type="file" name="wp_custom_attachment"id="wp_custom_attachment" size="50" /> 

Изменить на:

<input type="file" name="wp_custom_attachment" id="wp_custom_attachment" size="50" /> 
Смежные вопросы