content::item::upload_file (public)
content::item::upload_file -upload_file upload_file \ -parent_id parent_id [ -package_id package_id ] [ -title title ]
Defined in packages/acs-content-repository/tcl/content-item-procs.tcl
Store the file uploaded under the parent_id if a file was uploaded
- Switches:
- -upload_file (required)
- File to upload
- -parent_id (required)
- Parent ID
- -package_id (optional)
- -title (optional)
- Title of the uploaded file
- Returns:
- revision_id of the generated item
- Author:
- Malte Sussdorff <sussdorff@sussdorff.de>
- Created:
- 2005-06-21
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: set filename [template::util::file::get_property filename $upload_file] if {$filename ne "" } { set tmp_filename [template::util::file::get_property tmp_filename $upload_file] set mime_type [template::util::file::get_property mime_type $upload_file] set tmp_size [file size $tmp_filename] set extension [file extension $filename] if {$title eq ""} { # maltes: The following regsub garbles the title and consequently the filename as well. # "info_c+w.zip" will become "info_c+" # This is bad, first of all because a letter is missing entirely. Additionally # the title in itself should be the original filename, after all this is what # the user uploaded, not something stripped of its extension. # So I commented this out until someone can either fix the regsub but more importantly # can explain why the title should not contain the extension. # DRB: removing the explicit "." isn't sufficient because the "." in the # extension also matches any char unless it is escaped. Like Malte, I # see no reason to get rid of the extension in the title anyway ... # regsub -all -- ".${extension}\$" $filename "" title set title $filename } set existing_filenames [db_list get_parent_existing_filenames {}] set filename [ad_sanitize_filename -existing_names $existing_filenames -collapse_spaces -replace_with "_" $title] set revision_id [cr_import_content -storage_type "file" -title $title -package_id $package_id $parent_id $tmp_filename $tmp_size $mime_type $filename] content::item::set_live_revision -revision_id $revision_id return $revision_id }Generic XQL file: <fullquery name="content::item::upload_file.get_parent_existing_filenames"> <querytext> select name from cr_items where parent_id = :parent_id </querytext> </fullquery>packages/acs-content-repository/tcl/content-item-procs.xql
PostgreSQL XQL file: packages/acs-content-repository/tcl/content-item-procs-postgresql.xql
Oracle XQL file: packages/acs-content-repository/tcl/content-item-procs-oracle.xql