本文整理汇总了PHP中Attachment::update方法的典型用法代码示例。如果您正苦于以下问题:PHP Attachment::update方法的具体用法?PHP Attachment::update怎么用?PHP Attachment::update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Attachment
的用法示例。
在下文中一共展示了Attachment::update方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: OnFileUpload
/**
* This function should be called when an attachment is uploaded. It will
* save the attachment to the appropriate place on the disk, and create a
* database entry for the file.
*
* @param array $p_fileVar
* <pre>
* The variable from the $_FILES array. The array specifies the following:
* $a["name"] = original name of the file.
* $a["type"] = the MIME type of the file
* $a["tmp_name"] = the temporary storage location on disk of the file
* $a["size"] = size of the file, in bytes (not required)
* $a["error"] = 0 (zero) if there was no error
* </pre>
*
* @param array $p_attributes
* Optional attributes which are stored in the database.
* Indexes can be the following: 'content_disposition', 'fk_language_id', 'http_charset', 'fk_user_id'
*
* @param int $p_id
* If the attachment already exists and we just want to update it, specify the
* current ID here.
*
* @param bool $p_uploaded
* If the attachment was uploaded with other mechanism (ex: plUploader)
* this is set so that the single upload file from article functionality is still secured.
*
* @return mixed
* The Attachment object that was created or updated.
* Return a PEAR_Error on failure.
*/
public static function OnFileUpload($p_fileVar, $p_attributes, $p_id = null, $p_uploaded = false)
{
if (!is_array($p_fileVar)) {
return null;
}
// Verify its a valid file.
$filesize = filesize($p_fileVar['tmp_name']);
if ($filesize === false) {
return new PEAR_Error("Attachment::OnFileUpload(): invalid parameters received.");
}
// Are we updating or creating?
if (!is_null($p_id)) {
// Updating the attachment
$attachment = new Attachment($p_id);
$attachment->update($p_attributes);
// Remove the old file because
// the new file may have a different file extension.
if (file_exists($attachment->getStorageLocation())) {
unlink($attachment->getStorageLocation());
}
} else {
// Creating the attachment
$attachment = new Attachment();
$attachment->create($p_attributes);
$attachment->setProperty('time_created', 'NULL', true, true);
}
$attachment->setProperty('file_name', $p_fileVar['name'], false);
$attachment->setProperty('mime_type', $p_fileVar['type'], false);
$attachment->setProperty('size_in_bytes', $p_fileVar['size'], false);
$extension = "";
$fileParts = explode('.', $p_fileVar['name']);
if (count($fileParts) > 1) {
$extension = array_pop($fileParts);
$attachment->setProperty('extension', $extension, false);
}
$target = $attachment->getStorageLocation();
$attachment->makeDirectories();
ob_start();
var_dump(is_uploaded_file($p_fileVar['tmp_name']));
$dump = ob_get_clean();
/**
* for security reason
* for file uploaded normal not with other mechanism (ex: plUploader)
* we still need the move_uploaded_file functionality
*/
if (!$p_uploaded && !move_uploaded_file($p_fileVar['tmp_name'], $target)) {
$attachment->delete();
return new PEAR_Error(camp_get_error_message(CAMP_ERROR_CREATE_FILE, $target), CAMP_ERROR_CREATE_FILE);
}
// if the file was uploaded with other mechanism (ex: plUploader) use rename(move) functionality
if ($p_uploaded && !rename($p_fileVar['tmp_name'], $target)) {
$attachment->delete();
return new PEAR_Error(camp_get_error_message(CAMP_ERROR_CREATE_FILE, $target), CAMP_ERROR_CREATE_FILE);
}
chmod($target, 0644);
$attachment->commit();
return $attachment;
}
示例2: approveAction
/**
* Approve action
*/
public function approveAction()
{
$this->getHelper('contextSwitch')->addActionContext('approve', 'json')->initContext();
$parameters = $this->getRequest()->getParams();
if ($parameters['type'] == 'image') {
$image = new Image($parameters['id']);
$image->update(array('Status' => 'approved'));
$user_id = $image->getUploadingUserId();
$user = $this->_helper->service('user')->find($user_id);
$this->_helper->service->getService('dispatcher')->notify('image.approved', new GenericEvent($this, array('user' => $user)));
}
if ($parameters['type'] == 'document') {
$document = new Attachment($parameters['id']);
$document->update(array('Status' => 'approved'));
$user_id = $document->getUploadingUserId();
$user = $this->_helper->service('user')->find($user_id);
$this->_helper->service->getService('dispatcher')->notify('document.approved', new GenericEvent($this, array('user' => $user)));
}
}
示例3: uploadMultiAttachment
/**
* Uploads multiple attachments at once (Using the Html::multiFileUpload function
*
* Stores in /uploads/attachments/<ObjectTableName>/<year>/<month>/<day>/<attachId>/<filename>
*
* @param <string> $requestKey
* @param <DbObject> $parentObject
* @param <Array> $titles
* @param <Array> $descriptions
* @param <Array> $type_codes
* @return <bool> if upload was successful
*/
function uploadMultiAttachment($requestkey, $parentObject, $titles = null, $descriptions = null, $type_codes = null)
{
if (!is_a($parentObject, "DbObject")) {
$this->w->error("Parent object not found.");
return false;
}
$rpl_nil = array("..", "'", '"', ",", "\\", "/");
$rpl_ws = array(" ", "&", "+", "\$", "?", "|", "%", "@", "#", "(", ")", "{", "}", "[", "]", ",", ";", ":");
if (!empty($_FILES[$requestkey]['name']) && is_array($_FILES[$requestkey]['name'])) {
$file_index = 0;
foreach ($_FILES[$requestkey]['name'] as $FILE_filename) {
// Files can be empty
if (!empty($FILE_filename['file'])) {
$filename = str_replace($rpl_ws, "_", str_replace($rpl_nil, "", basename($FILE_filename['file'])));
$att = new Attachment($this->w);
$att->filename = $filename;
$att->fullpath = null;
$att->parent_table = $parentObject->getDbTableName();
$att->parent_id = $parentObject->id;
$att->title = !empty($titles[$file_index]) ? $titles[$file_index] : '';
$att->description = !empty($descriptions[$file_index]) ? $descriptions[$file_index] : '';
$att->type_code = !empty($type_codes) ? $type_codes[$file_index] : '';
$att->insert();
$filesystemPath = FILE_ROOT . "attachments/" . $parentObject->getDbTableName() . '/' . date('Y/m/d') . '/' . $att->id . '/';
$filesystem = $this->getFilesystem($filesystemPath);
$file = new File($filename, $filesystem);
$file->setContent(file_get_contents($_FILES[$requestkey]['tmp_name'][$file_index]['file']));
$att->fullpath = str_replace(FILE_ROOT, "", $filesystemPath . $filename);
$att->update();
}
$file_index++;
}
}
return true;
}
示例4: generateZip
/**
* generateZip
*
* @param AutoZipConfig $autozip
* @param string $version_number
*/
public static function generateZip(AutoZipConfig $autozip, $version_number = null)
{
// Move the configured folder as source folder
if ($autozip->source_folder) {
self::cliExec('mv download/' . $autozip->source_folder . ' source');
} else {
self::cliExec('mv download source');
}
// Zip with or without root folder in the zip
if ($autozip->zip_folder) {
self::cliExec('mv source ' . $autozip->zip_folder);
self::cliExec('zip -qr autozip.zip ' . $autozip->zip_folder);
} else {
self::cliExec('zip -qr ../autozip.zip . ', array(), _AUTOZIP_TMP_ . 'source');
}
if ($autozip->id_attachment) {
// get the Attachement config
$attachment = new Attachment($autozip->id_attachment);
if (!$attachment->file) {
throw new PrestaShopException('The Attachement does not exists. Please update the autozip association');
}
// Move the generated zip as the "regular" Attachement
self::cliExec('mv autozip.zip ' . _PS_DOWNLOAD_DIR_ . $attachment->file);
if ($autozip->zip_basename) {
$attachment->file_name = $autozip->zip_basename . ($version_number ? '-' . $version_number : '') . '.zip';
}
$attachment->mime = 'application/zip';
$attachment->update();
} else {
if ($autozip->id_product_download) {
// get the Product Download config
$product_download = new ProductDownload($autozip->id_product_download);
if (!$product_download->id_product) {
throw new PrestaShopException('The product Download does not exists. Please update the autozip association');
}
// Move the generated zip as the "regular" Product Download
self::cliExec('mv autozip.zip ' . _PS_DOWNLOAD_DIR_ . $product_download->filename);
if ($autozip->zip_basename) {
$product_download->display_filename = $autozip->zip_basename . ($version_number ? '-' . $version_number : '') . '.zip';
}
$product_download->date_add = date('Y-m-d H:i:s');
//Prestashop dos not like the way he is himself storing an empty date (we do not change this field)
if ($product_download->date_expiration === '0000-00-00 00:00:00') {
$product_download->date_expiration = null;
}
$product_download->update();
}
}
}
示例5: Translation
require_once($GLOBALS['g_campsiteDir'].'/classes/ArticleAttachment.php');
require_once($GLOBALS['g_campsiteDir'].'/classes/Translation.php');
if (!SecurityToken::isValid()) {
camp_html_display_error(getGS('Invalid security token!'));
exit;
}
$f_language_id = Input::Get('f_language_id', 'int', 0);
$f_language_selected = Input::Get('f_language_selected', 'int', 0);
foreach ($_POST['file'] as $id => $values) {
$description = new Translation((int) $f_language_selected);
$description->create($values['f_description']); //$values
$updateArray = array();
$updateArray['fk_description_id'] = $description->getPhraseId();
/* if ($values['f_language_specific'] == "yes") {
$updateArray['fk_language_id'] = $f_language_selected;
}
*/
if ($values['f_content_disposition'] == "attachment") {
$updateArray['content_disposition'] = "attachment";
}
$fileObj = new Attachment((int) $id);
$fileObj->update($updateArray);
}
camp_html_add_msg(getGS("Images updated."), "ok");
camp_html_goto_page("/$ADMIN/media-archive/index.php#files");
?>