Warning: move_uploaded_file(**Path**): failed to open stream: Permission denied in
<p>Hey i alaways get the error </p>

<blockquote>
  <p>Warning: move_uploaded_file(<strong>Path</strong>): failed to open stream:
  Permission denied in /Users/Shared/xampp-htdocs/php-reports/upload.php on line 27</p>
</blockquote>

<p>my index.php code is</p>

<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;form action="upload.php" method="post" enctype="multipart/form-data"&gt;
      &lt;input type="file" name="datei" accept=".csv"&gt;&lt;br&gt;
      &lt;input type="submit" value="Hochladen"&gt;
    &lt;/form&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>and my php code is </p>

<pre><code>&lt;?php
$upload_folder = getcwd().'/uploads/files'; //Das Upload-Verzeichnis
$filename = pathinfo($_FILES['datei']['name'], PATHINFO_FILENAME);
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));


//Überprüfung der Dateiendung
$allowed_extensions = array('csv');
if(!in_array($extension, $allowed_extensions)) {
  die("Ungültige Dateiendung. Nur csv-Dateien sind erlaubt");
}


//Pfad zum Upload
$new_path = $upload_folder.$filename.'.'.$extension;

//Neuer Dateiname falls die Datei bereits existiert
if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
  $id = 1;
  do {
    $new_path = $upload_folder.$filename.'_'.$id.'.'.$extension;
    $id++;
  } while(file_exists($new_path));
}

//Alles okay, verschiebe Datei an neuen Pfad
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
echo 'Datei erfolgreich hochgeladen: &lt;a href="'.$new_path.'"&gt;'.$new_path.'&lt;/a&gt;';
?&gt;
</code></pre>

<p>i also set the directory to chmod 777</p>

<pre><code>-rw-r--r--  1 user  staff   279 31 Mär 12:00 .htaccess
drwxrwxrwx  2 user  staff    68 31 Mär 11:56 files
</code></pre>