A long while ago, a teacher contacted me wondering how he could upload files to the XS.  He had a Mac, so I set him up with an XS login and a dir in /var/www/html and he used CyberDuck to scp the files.  But what if it had been a teacher who only had access to one of the school&#39;s XP machines?  The IT policy is so strict you can&#39;t install anything.  While a few teachers might be OK with scping files from an XO, most might not.<br>
<br>Now, I know Moodle handles file uploads, but some folks don&#39;t use it.  Or they might prefer to upload certain things outside of Moodle where Apache can serve it.<br><br>Aside from security concerns, and the vain hope that your users aren&#39;t careless idiots, this is extremely easy to set up.<br>
<br>Obviously, take care if your XS faces the outside world.  On my test XS, I put upload.html in /var/www/html/clubhouse, which is password protected with .htaccess.  Seriously, this is all it takes to make the form:<br>
<br> &lt;form enctype=&quot;multipart/form-data&quot; action=&quot;../upload.php&quot; method=&quot;POST&quot;&gt;<br> Please choose a file: &lt;input name=&quot;uploaded&quot; type=&quot;file&quot; /&gt;&lt;br /&gt;<br> &lt;input type=&quot;submit&quot; value=&quot;Upload&quot; /&gt;<br>
 &lt;/form&gt; <br><br>In /var/www/html, I created upload.php which says where to upload the file (the target).<br><br>&lt;?php <br> $target = &quot;deaddrop/&quot;; <br> $target = $target . basename( $_FILES[&#39;uploaded&#39;][&#39;name&#39;]) ; <br>
 $ok=1; <br><br> { <br> if(move_uploaded_file($_FILES[&#39;uploaded&#39;][&#39;tmp_name&#39;], $target)) <br> { <br> echo &quot;The file &quot;. basename( $_FILES[&#39;uploadedfile&#39;][&#39;name&#39;]). &quot; has been uploaded&quot;; <br>
 } <br> else <br> { <br> echo &quot;Sorry, there was a problem uploading your file.&quot;; <br> } <br> } <br> ?&gt; <br><br>The last step was to create /var/www/html/deaddrop and set the permissions:<br><br>chown -R apache:apache deaddrop<br>
<br>So now all the user needs to do is go to <a href="http://schoolserver/clubhouse/upload.html">http://schoolserver/clubhouse/upload.html</a>, enter the login credentials if you&#39;ve set that up, upload a file from their local drive, then go to <a href="http://schoolserver/deaddrop">http://schoolserver/deaddrop</a> to see it listed in the index.<br>
<br>Users can&#39;t delete files, of course.  Root needs to log in to take care of that.  Which means if a careless idiot accidentally uploads, ahem, &quot;home movies,&quot; that will be up there for all to see until someone with root access can take care of it.<br>
<br>And there&#39;s nothing that would keep you from setting up a password protected &quot;teachers lounge&quot; with individual upload.html files that point to individual teacher&#39;s web directories.<br><br>As always, comments, suggestions, and criticism welcome.<br>
<br>Anna Schoolfield<br>Birmingham<br>