无法上传文件,php和angularjs

     2023-02-25     296

关键词:

【中文标题】无法上传文件,php和angularjs【英文标题】:Can't upload files, php and angularjs 【发布时间】:2014-11-21 13:33:40 【问题描述】:

我正在尝试使用 angularJs 和 PHP 上传文件。

我正在使用 angular-file-upload,https://github.com/danialfarid/angular-file-upload。

问题似乎出在我的 PHP 代码中,因为它想将文件移动到目标目录。

这是我的角度:

$scope.onFileSelect = function($files) //Vi har valt en eller flea filer //$files är en 数组 innehållande de valda filerna att ladda upp。 Dess namn, storlek och typ

for(var i = 0; i < $files.length; i++)

    var file = $files[i];
    $scope.upload = $upload.upload(
        url: 'lib/actions.php',
        data: myObj: $scope.myModelObj,
        file: file

    ).progress(function(evt) 
        console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
    ).success(function(data, status, headers, config) 
        console.log(data);
    );

;

这很好用。对我的 PHP 文件进行了 POST:

if(isset($_FILES['file']))

    $target_dir = "books/";
    $target_file = $target_dir . basename($_FILES["file"]["name"]);

    if(move_uploaded_file($_FILES['file']['tmp_name'], $target_file))
    
        echo "YES";
    
    else
    
        echo "wrong";
    
   

这总是打印“错误”。我不明白为什么。谁能帮帮我?

【问题讨论】:

我认为,这是关于路径的问题。让我们var_dump(getcwd()) 看看,你的当前目录是什么,是否有一个books 子目录 @lolka_bolka 的输出是:string(21) "/var/www/cryptlib/lib" 书籍目录在哪里? /var/www/cryptlib/lib/books/var/www/cryptlib/books? @lolka_bolka:是的,它在 lib 目录中。 所有权限都对吗?使用777 进行测试,但不要忘记设置回775755 【参考方案1】:

尝试使用多部分 POST 类型而不是 $_FILES,这是发布文件的一种优雅方式:http://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs。这对我有用。

编辑

如果链接的网站出现问题,我最好用优雅的方式在这里写下来。

您需要创建一个附加到控制器的指令,以便您可以处理当前范围,该指令可以如下所示:

.directive('fileModel', ['$parse', function ($parse) 
return 
    restrict: 'A',
    link: function(scope, element, attrs) 
        var model = $parse(attrs.fileModel);
        var modelSetter = model.assign;

        element.bind('change', function()
            scope.$apply(function()
                modelSetter(scope, element[0].files[0]);
            );
        );
    
;

]);

创建指令后,您可以在 html 部分中使用,如下所示:

<input type="file" file-model="myFile"/>

好的,现在我们有我自己的指令可以处理您的文件,我们需要发送到服务器(在您的情况下为 localhost)。所以我们为此提供服务:

.service('fileUpload', ['$http', function ($http) 
this.uploadFileToUrl = function(file, uploadUrl)
    var fd = new FormData();
    fd.append('file', file);
    $http.post(uploadUrl, fd, 
        transformRequest: angular.identity,
        headers: 'Content-Type': undefined
    )
    .success(function()
    )
    .error(function()
    );

]);

就像这样,你可以给这个服务任何 url,而不仅仅是你的本地主机,还有你想要上传的文件。

但是我们如何做到这一点?只需将其复制到您的控制器:

var file = $scope.myFile;
var uploadUrl = 'http://www.example.com/images';
fileUpload.uploadFileToUrl(file, uploadUrl);

这应该可行。 :)

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

使用 AngularJS 和 SpringMVC 进行多部分文件上传

】使用AngularJS和SpringMVC进行多部分文件上传【英文标题】:MultipartFileUploadusingAngularJSandSpringMVC【发布时间】:2017-07-2900:45:09【问题描述】:我是angularJS的新手,并尝试使用angularJS和SpringMVC上传文件,但无法获得所需的解决方案并... 查看详情

如何使用 AngularJS 将文件上传到 Google Drive

】如何使用AngularJS将文件上传到GoogleDrive【英文标题】:HowtouploadfiletoGoogleDrivewithAngularJS【发布时间】:2015-12-1110:07:12【问题描述】:我卡住了,我无法使用AngularJS将文件上传到GoogleDrive。现在我的客户想知道他们想使用AngularJS将... 查看详情

angularjs上传图片和文件

很简单:$scope.upload=function(){ varf=$scope.myFile; varfd=newFormData(); varimg=document.querySelector(‘input[type=file]‘).files[0]; //varfile=[]; //file.push(f); //file.push(img); fd.appe 查看详情

webapi+angularjs文件上传和下载

开发框架前端angularJS1.6下载和保存文件FileSaver:https://github.com/eligrey/FileSaver.js/后端.netWebAPI1导入Excel文件关键代码1.1导入Excel弹出框1.2模态框html代码<divclass="modalfade"id="importExcelPop"tabindex="-1"role="dialog"aria- 查看详情

AngularJS 无法从引导模式窗口传递 $index

】AngularJS无法从引导模式窗口传递$index【英文标题】:AngularJScan\'tpass$indexfrombootstrapmodalwindow【发布时间】:2015-08-1122:43:54【问题描述】:我在这里用头撞墙。我正在使用ng-repeat来填充表格。在每一行内我有2个按钮,一个用于更... 查看详情

Angularjs如何上传多部分表单数据和文件?

】Angularjs如何上传多部分表单数据和文件?【英文标题】:Angularjshowtouploadmultipartformdataandafile?【发布时间】:2014-08-1801:22:42【问题描述】:我是angular.js的初学者,但我对基础知识掌握得很好。我要做的是上传一个文件和一些表... 查看详情

无法使用 AngularJS 和 PHP 发布

】无法使用AngularJS和PHP发布【英文标题】:UnabletopostusingAngularJS&PHP【发布时间】:2019-01-1014:11:09【问题描述】:我正在运行AngularJSapp。我之前在本地跑过,可以发到本地服务器。现在我在实时服务器上尝试它,我收到以下错... 查看详情

如何从 angularjs 和 CORS 支持将文件上传到球衣

】如何从angularjs和CORS支持将文件上传到球衣【英文标题】:howtouploadfiletojerseyfromangularjsandCORSsupport【发布时间】:2017-03-1703:50:51【问题描述】:我正在尝试创建上传文件服务。所以我在服务器端关注theguidehere。theguidehere用于客户... 查看详情

PHP上传和覆盖照片文件

...,但目标文件夹中没有文件。我一直在搜索***,但我似乎无法弄清楚。HTML:<formenctype="mult 查看详情

在 MVC .net 核心中使用 Angularjs 上传文件和数据

】在MVC.net核心中使用Angularjs上传文件和数据【英文标题】:UploadFileandDatawithAngularjsinMVC.netcore【发布时间】:2021-09-1914:01:31【问题描述】:<inputtype="file"ng-model="ch.FileName"id="file"name="myFile"nchange="angular.element(this).scope().saveC 查看详情

在Laravel中通过AngularJs上传文件时获取值为null

】在Laravel中通过AngularJs上传文件时获取值为null【英文标题】:GettingvaluenullwhileuploadingfilethroughAngularJsinLaravel【发布时间】:2020-02-2704:32:19【问题描述】:当我尝试在AngularJs中使用POST请求上传文件时,我无法上传文件,因为它显... 查看详情

使用 Angular 和 php 选择文件、裁剪和上传

...web上找到的本教程,并且我已经正确安装了依赖项。但我无法将我的文件上传到服务器JSimageChangedEvent:任意=\'\';croppedImage:any=\'\';fileChangeEvent(e 查看详情

如何在angularjs中使用ng-file上传裁剪和上传图像

】如何在angularjs中使用ng-file上传裁剪和上传图像【英文标题】:Howtocropanduploadaimageusingng-fileuploadinangularjs【发布时间】:2015-12-0114:04:24【问题描述】:您好,我正在尝试裁剪图像并使用angularjs中的ng-file上传来上传图像。裁剪后... 查看详情

无法用php上传大文件

】无法用php上传大文件【英文标题】:can\'tuploadinglargefileswithphp【发布时间】:2012-02-1607:41:23【问题描述】:我正在我的本地主机上测试一个网站,而不是在服务器上在php.ini中,最大文件大小为128mb,但我无法上传26mb的flv文件,... 查看详情

无法通过php上传文件?

】无法通过php上传文件?【英文标题】:Can\'tuploadfilethroughphp?【发布时间】:2016-06-0712:23:03【问题描述】:我正在尝试通过php上传文件HTML表单<!DOCTYPEhtml><html><body><formaction="upload.php"method="post"enctype="multipart/form-data"... 查看详情

如何使用 php jquery ajax 上传文件和插入数据

...hpjqueryajax【发布时间】:2018-05-3009:58:41【问题描述】:我无法通过ajax发送到php文件上传和使用ajax的数据。Thismycodejustsendfileupload。数据不发送到我的php代码。我创建表单并使用ajax在php上发布点击发送功能。I\'musingc 查看详情

无法在 PHP 中上传文件

】无法在PHP中上传文件【英文标题】:UnabletoUploadfileinPHP【发布时间】:2016-02-1704:57:32【问题描述】:大家好,我正在尝试在php中上传文件。但它没有上传文件这里是代码$excel=newPhpExcelReader;if(isset($_POST["submit"]))$target_dir="../upload/"... 查看详情

无法将 pdf 文件上传到 mysql 数据库并使用 PHP 检索它?

】无法将pdf文件上传到mysql数据库并使用PHP检索它?【英文标题】:FailedtouploadpdffileintomysqldatabseandretrieveitusingPHP?【发布时间】:2019-04-2719:43:51【问题描述】:我正在尝试使用MySql和PHP将pdf文件上传到数据库,但只有jpeg/png等图像... 查看详情