From c957fe0aab54531d5ceb13718ecff078f3c9f5cb Mon Sep 17 00:00:00 2001 From: Kjartan Mannes Date: Fri, 4 Jun 2004 18:00:48 +0000 Subject: - Commited patch #4878: Support file uploads via blogapi. --- includes/file.inc | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'includes') diff --git a/includes/file.inc b/includes/file.inc index 8994ea9d2..79f1b3f22 100644 --- a/includes/file.inc +++ b/includes/file.inc @@ -288,6 +288,37 @@ function file_save_upload($source, $dest = 0, $replace = 0) { return 0; } +/** + * Save a string to the specified destination + * + * @param $data A string containing the contents of the file + * @param $dest A string containing the destination location + * + * @return A string containing the resulting filename or 0 on error + */ +function file_save_data($data, $dest, $replace = 0) { + if (!valid_input_data($data)) { + watchdog('error', t('Possible exploit abuse: invalid data.')); + drupal_set_message(t("file upload failed: invalid data."), 'error'); + return 0; + } + + $temp = variable_get('file_directory_temp', (PHP_OS == 'WINNT' ? 'c:\\windows\\temp' : '/tmp')); + $file = tempnam($temp, 'file'); + if (!$fp = fopen($file, 'w')) { + drupal_set_message(t('unable to create file.'), 'error'); + return 0; + } + fwrite($fp, $data); + fclose($fp); + + if (!file_move($file, $dest)) { + return 0; + } + + return $file; +} + /** * Transfer file using http to client. Pipes a file through Drupal to the * client. -- cgit v1.2.3