[gelöst] Eigener Userpicture Upload
am 04.07.2009 - 10:39 Uhr in
Hi
ich baue mir gerade eine Seite die nur das Userbild hochläd. Das löschen funzt sauber aber der Upload leider nicht. file_upload_save funktioniert einfach nicht und ich bin echt am Ende mit meinem Latein. Hier mal der Code:
<?php
function user_extension_picture_upload_form($form_state, $account) {
$form = array();
$form['user'] = array(
'#type' => 'value',
'#value' => $account,
);
// Picture/avatar:
if (variable_get('user_pictures', 0))
{
$form['picture'] = array ('#type'=>'fieldset', '#title'=>t('Picture'), '#weight'=>-1);
if ($account->picture)
{
$form['picture']['current_picture'] = array ('#value'=>theme('user_picture', $account));
$form['picture']['picture_delete'] = array ('#type'=>'checkbox', '#title'=>t('Delete picture'), '#description'=>t('Check this box to delete your current picture.'));
}
else
{
$form['picture']['picture_delete'] = array ('#type'=>'hidden');
}
$form['picture']['picture_upload'] = array ('#type'=>'file', '#title'=>t('Upload picture'), '#size'=>48, '#description'=>t('Your virtual face or picture. Maximum dimensions are %dimensions and the maximum size is %size kB.', array ('%dimensions'=>variable_get('user_picture_dimensions', '85x85'), '%size'=>variable_get('user_picture_file_size', '30'))).' '.variable_get('user_picture_guidelines', ''));
$form['#validate'][] = 'user_extension_validate_picture';
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save picture')
);
return $form;
}
function user_extension_validate_picture(&$form, &$form_state) {
$form_values = $form_state['values'];
$account = $form_values['user'];
// If required, validate the uploaded picture.
$validators = array(
'file_validate_is_image' => array(),
'file_validate_image_resolution' => array(variable_get('user_picture_dimensions', '85x85')),
'file_validate_size' => array(variable_get('user_picture_file_size', '30') * 1024),
);
if ($file = file_save_upload('picture_upload', $validators)) {
// Remove the old picture.
if (isset($account->picture) && file_exists($account->picture)) {
file_delete($account->picture);
}
// The image was saved using file_save_upload() and was added to the
// files table as a temporary file. We'll make a copy and let the garbage
// collector delete the original upload.
$info = image_get_info($file->filepath);
$destination = variable_get('user_picture_path', 'pictures') .'/picture-'. $account->uid .'.'. $info['extension'];
if (file_copy($file, $destination, FILE_EXISTS_REPLACE)) {
$form_values['picture'] = $file->filepath;
}
else {
form_set_error('picture_upload', t("Failed to upload the picture image; the %directory directory doesn't exist or is not writable.", array('%directory' => variable_get('user_picture_path', 'pictures'))));
}
}
}
?>Für die if-Abfrage gibt es einfach kein TRUE - jemand eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben

enctype = "multipart/form-data" fehlt
am 04.07.2009 - 11:40 Uhr
<?php$form['#attributes']['enctype'] = 'multipart/form-data';
?>
--

super, dass klappt ;o) man
am 04.07.2009 - 13:32 Uhr
super, dass klappt ;o) man man was für ein Akt
http://www.deafvision.de