【发布时间】:2014-02-16 22:04:30
【问题描述】:
我想将照片保存在我的服务器中,但保存在其他文件夹中。文件夹的结构是:
---main folder
|
---uploadphoto.php
|
---photos (folder)
|
--$email (folder)
当用户注册时,我创建了一个用户名,权限为0777的文件夹,文件夹创建成功。
当我尝试在用户文件夹中上传照片时,它不起作用,但如果我更改保存文件的路径,它会完美运行。这意味着在用户文件夹之外,在文件夹“照片”中。
这是我将照片保存在文件夹中的 php 代码:
$email = $_POST['email'];
$ruta = "photos/". $email . basename( $_FILES['fotoUp']['name']);
if(move_uploaded_file($_FILES['fotoUp']['tmp_name'], $ruta))
chmod ("photos/". $email . basename( $_FILES['fotoUp']['name']), 0644);
并且用户名是通过Android传递的:
List<NameValuePair> paramsu = new ArrayList<NameValuePair>();
paramsu.add(new BasicNameValuePair("email", email));
paramsu.add(new BasicNameValuePair("path", path));
JSONObject json = jsonParser.makeHttpRequest(UPLOAD_PHOTO_URL, "POST", paramsu);
如何将照片放入文件夹中?我认为这是PHP语法的问题。我已经在 Android 中进行了调试,并且变量电子邮件内容是正确的电子邮件到 PHP。
创建文件夹的方式是注册用户时。
$folderemail = $_POST['email'];
mkdir("photos/$folderemail", 0777);
chmod("photos/$folderemail", 0644);
这是我现在的文件:
$email = "$_POST['email']";
$ruta = "photos/". $email . "/" . basename( $_FILES['fotoUp']['name']);
if(move_uploaded_file($_FILES['fotoUp']['tmp_name'], $ruta))
chmod ($ruta . basename( $_FILES['fotoUp']['name']), 0644);
我也试过了:
$email = "$_POST['email']";
$ruta = "photos/$email/" . basename( $_FILES['fotoUp']['name']);
if(move_uploaded_file($_FILES['fotoUp']['tmp_name'], $ruta))
chmod ($ruta . basename( $_FILES['fotoUp']['name']), 0644);
还有这个:
//$email = "$_POST['email']";
$ruta = "photos/1234/" . basename( $_FILES['fotoUp']['name']);
if(move_uploaded_file($_FILES['fotoUp']['tmp_name'], $ruta))
chmod ($ruta . basename( $_FILES['fotoUp']['name']), 0644);
这很有效,但是当我将变量 $email 放入同名时不起作用。
应用程序的部分是这样的:
List<NameValuePair> paramsu = new ArrayList<NameValuePair>();
paramsu.add(new BasicNameValuePair("email", email));
paramsu.add(new BasicNameValuePair("path", filename));
Log.d("request!", "starting");
JSONObject json = jsonParser.makeHttpRequest(
UPLOAD_PHOTO_URL, "POST", paramsu);
Log.i("tag", email);//DEBUG (Email that upload the photo)
Log.i 返回正确的电子邮件测试“1234”。
当我在服务器中创建电子邮件文件夹时,在 php 中使用此命令:
$folderemail = $_POST['email'];
mkdir("photos/$folderemail", 0777);
【问题讨论】:
-
用户文件夹名称是什么,是来自$user还是$email
-
是的 $email,抱歉弄错了。
-
我的服务器在 Ubuntu Server 上,但我正在尝试使用不带 @ 的电子邮件,因为我必须知道如何将照片保存到文件夹中。
-
当我更改 php 脚本并将真正的文件夹 /photos/1234/ 文件上传到此文件夹时,但当我更改为 /photos/$mail/ 时不会。为什么?
-
此时你应该发布整个脚本,我会复制它