Browse Source

ISLANDORA-485 AHAH causes file upload

Little patch to allow use of upload_element instead of the normal
"file" element
pull/135/head
Adam Vessey 13 years ago
parent
commit
429b70c518
  1. 28
      fedora_repository.module

28
fedora_repository.module

@ -220,18 +220,26 @@ function fedora_repository_ingest_form_validate($form, &$form_state) {
// Get the uploaded file.
$validators = array();
if (!empty($_FILES['files']['name']['ingest-file-location'])) {
$fileObject = file_save_upload('ingest-file-location', $validators);
$ifl = 'ingest-file-location';
$fileObject = NULL;
//Check if it's already there; this is what upload_element provides.
if (is_a($form_state['values'][$ifl], 'stdClass') && property_exists($form_state['values'][$ifl], '')) {
$fileObject = $form_state['values'][$ifl];
}
elseif (!empty($_FILES['files']['name'][$ifl])) {
$fileObject = file_save_upload($ifl, $validators);
}
if ($fileObject !== NULL && property_exists($fileObject, 'filepath')) {
file_move($fileObject->filepath, 0, 'FILE_EXISTS_RENAME');
$form_state['values']['ingest-file-location'] = $fileObject->filepath;
$form_state['values'][$ifl] = $fileObject->filepath;
}
if (isset($form_state['values']['ingest-file-location']) && file_exists($form_state['values']['ingest-file-location'])) {
if (isset($form_state['values'][$ifl]) && file_exists($form_state['values'][$ifl])) {
module_load_include('inc', 'fedora_repository', 'ContentModel');
module_load_include('inc', 'fedora_repository', 'MimeClass');
$file = $form_state['values']['ingest-file-location'];
$file = $form_state['values'][$ifl];
$contentModelPid = ContentModel::getPidFromIdentifier($form_state['values']['models']);
$contentModelDsid = ContentModel::getDSIDFromIdentifier($form_state['values']['models']);
@ -244,11 +252,11 @@ function fedora_repository_ingest_form_validate($form, &$form_state) {
if (!empty($file)) {
if (!in_array($dformat, $allowedMimeTypes)) {
form_set_error('ingest-file-location',
t('The uploaded file\'s mimetype') .
' (' . $dformat . ') ' .
t('is not associated with this Content Model. The allowed types are') .
' ' . implode(' ', $allowedMimeTypes));
form_set_error($ifl,
t('The uploaded file\'s mimetype (@mime) is not associated with this Content Model. The allowed types are: @allowed', array(
'@mime' => $dformat,
'@allowed' => implode(', ', $allowedMimeTypes),
));
file_delete($file);
return;
}

Loading…
Cancel
Save