用户定义的功能不适用于文件上传

时间:2017-11-09 05:50:02

标签: php

我正在尝试上传页面上的多个文件。因此,我没有编写代码4次,而是创建了一个函数。但功能不起作用。 我有4个输入标签,类型文件ande名称file1,file2等。 功能如下。

<Image Source="{Binding Image}" WidthRequest="40" HeightRequest="40" VerticalOptions="Center" />

我确实在表单中有enctype =“multipart / form-data” 和文件的输入标签如下

if ($_POST['title']!="") {
    function fileup($filen,$n){
            $name[$n]= $_FILES[$filen]['name'];
            $tmp_name= $_FILES[$filen]['tmp_name'];
            $path= "../gallery/".$name[$n];
            move_uploaded_file($tmp_name, $path);
            return $path;
    }
    $product_image1 = fileup('file1','1');//calling function
    $product_image2 = fileup('file2','2');
    $product_image3 = fileup('file3','3');
    $product_image4 = fileup('file4','4');
        $ins="insert into product set product_category='".$_POST['category']."',
                                        product_title='".$_POST['title']."',
                                        product_description='".$_POST['description']."',
                                        product_code='".$_POST['code']."',
                                        product_price='".$_POST['price']."',
                                        product_image1='".$name1."',
                                        product_image2='".$name2."',
                                        product_image3='".$name3."',
                                        product_image4='".$name4."',
                                        product_status='".$_POST['status']."',
                                        product_fru='".$_POST['fru']."'
                                        ";
        mysqli_query($conn,$ins);
    }

2 个答案:

答案 0 :(得分:0)

删除全部回声:

$name =$_FILES[$filen]['name'];//$name is a local variable so you don't need a custom variable name
$tmp_name=$_FILES[$filen]['tmp_name'];
$path="../gallery/".$name;
move_uploaded_file($tmp_name, $path);

echo是一种语言结构,$ name是一个变量,你不能连接两者,在文件数组中,键必须是字符串而不是语言结构

我认为您希望将输入名称称为字符串而不是常量

        fileup('file1',1);//calling function
        fileup('file2',2);
        fileup('file3',3);
        fileup('file4',4);

您将需要在数据库中插入的路径,因此您需要从函数

返回它
 function fileup($filen,$n){
                $name[$n]= $_FILES[$filen]['name'];
                $tmp_name= $_FILES[$filen]['tmp_name'];
                $path= "../gallery/".$name[$n];
                move_uploaded_file($tmp_name, $path);
                return $path;
        }
        $product_image1 = fileup('file1','1');//calling function
        $product_image2 = fileup('file2','2');
        $product_image3 = fileup('file3','3');
        $product_image4 = fileup('file4','4');

答案 1 :(得分:0)

使用此

function fileup($filen,$n){
                    $name[$n] = $_FILES[$filen]['name'];
                    $tmp_name = $_FILES[$filen]['tmp_name'];
                    $path     = "../gallery/".$name[$n];

                    move_uploaded_file($tmp_name, $path);
            }

            fileup(file1,1);//calling function
            fileup(file2,2);
            fileup(file3,3);
            fileup(file4,4);