Index: FeedsParser.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/plugins/FeedsParser.inc,v
retrieving revision 1.11
diff -u -r1.11 FeedsParser.inc
--- FeedsParser.inc	24 Feb 2010 01:19:33 -0000	1.11
+++ FeedsParser.inc	28 Mar 2010 19:28:09 -0000
@@ -163,15 +163,23 @@
    */
   public function getFile() {
     if(!isset($this->file)) {
-      $dest = file_destination(file_directory_temp() .'/'. get_class($this) .'-'. basename($this->getValue()), FILE_EXISTS_RENAME);
-      if (ini_get('allow_url_fopen')) {
-        $this->file = copy($this->getValue(), $dest) ? $dest : 0;
+      if (!preg_match('@^((ftp|https?)://|/)@', $this->getValue())) {
+        $this->file = file_directory_path() . '/feeds/' . $this->getValue();
+        if (!is_file($this->file)) {
+          throw new Exception(t('File %name not found.', array('%name' => $this->getValue())));
+        }
       }
       else {
-        $this->file = file_save_data($this->getContent(), $dest);
-      }
-      if ($this->file === 0) {
-        throw new Exception(t('Cannot write content to %dest', array('%dest' => $dest)));
+        $dest = file_destination(file_directory_temp() .'/'. get_class($this) .'-'. basename($this->getValue()), FILE_EXISTS_RENAME);
+        if (ini_get('allow_url_fopen')) {
+          $this->file = copy($this->getValue(), $dest) ? $dest : 0;
+        }
+        else {
+          $this->file = file_save_data($this->getContent(), $dest);
+        }
+        if ($this->file === 0) {
+          throw new Exception(t('Cannot write content to %dest', array('%dest' => $dest)));
+        }
       }
     }
     return $this->file;

