我要上传图像并将其保存在服务器中。我上传了图像并获得了预览,但是我被困在将图像发送到服务器上。我想使用角度服务将此图像发送到服务器。
这是HTML代码
<input type="file" fileread="vm.uploadme" />
<img src="{{vm.uploadme}}" width="100" height="50" alt="Image preview...">
这是指令
(function(){
angular.module('appBuilderApp').directive("fileread", [function () {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
var reader = new FileReader();
reader.onload = function (loadEvent) {
scope.$apply(function () {
scope.fileread = loadEvent.target.result;
});
}
reader.readAsDataURL(changeEvent.target.files[0]);
});
}
}
}]);
})();
假设您在后端中期望Multipart,这是一段对我有用的代码。
这是一个jsfiddle。
var app = angular.module('myApp', [])
app.controller('MyController',
function MyController($scope, $http) {
//the image
$scope.uploadme;
$scope.uploadImage = function() {
var fd = new FormData();
var imgBlob = dataURItoBlob($scope.uploadme);
fd.append('file', imgBlob);
$http.post(
'imageURL',
fd, {
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
}
}
)
.success(function(response) {
console.log('success', response);
})
.error(function(response) {
console.log('error', response);
});
}
//you need this function to convert the dataURI
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var array = [];
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {
type: mimeString
});
}
});
//your directive
app.directive("fileread", [
function() {
return {
scope: {
fileread: "="
},
link: function(scope, element, attributes) {
element.bind("change", function(changeEvent) {
var reader = new FileReader();
reader.onload = function(loadEvent) {
scope.$apply(function() {
scope.fileread = loadEvent.target.result;
});
}
reader.readAsDataURL(changeEvent.target.files[0]);
});
}
}
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="MyController">
<input type="file" fileread="uploadme" />
<img src="{{uploadme}}" width="100" height="50" alt="Image preview...">
<br/>
<p>
Image dataURI:
<pre>{{uploadme}}</pre>
</p>
<br/>
<button ng-click="uploadImage()">upload image</button>
</div>
</div>
请注意 以下部分:
{
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
}
}
是一些Angular魔术,为了使$ http解析FormData并找到正确的内容类型,等等。
问题内容: 我想随请求一起发送图像作为参数。我使用下面的代码调用POST请求,但是我不知道如何将图像追加到正文中。 我通过图像选择器获取图像,如下所示: 我的要求如下 我是Swift的新手。我已经通过multipart / form-data看到了这一点,但无法自己实现。我不想将其编码为基本64格式。请帮助我。 问题答案: 我使用以下结构发送图像: 然后在函数中创建如下主体:
在我的代码中,我通过java套接字将图像从PC传输到手机。一切正常,图片保存到手机上,没有问题。但问题出现了,有没有可能在屏幕上显示图像而不保存? 服务器代码: 客户端代码:
问题内容: 我需要即时将画布图像数据上传到服务器(数据库),即,我需要创建一个带有input=file的表单,并在没有任何用户交互的情况下发布图像数据。 问题答案: 您不需要文件输入,只需使用Ajax 获取数据并将其发布到服务器即可。 请参阅MDN文档。 但是即使使用,您也无法在IE中获取图像数据。
但我的观点是,我是靠自己学习的,如果没有解释,初学者很难理解,所以我所要求的只是一个解释,对整个过程的详细解释如果有人很难花时间在这个问题上,因为信不信由你,我发现这是到目前为止最难的话题,因为主要原因是没有关于整个过程的教程,也没有对初学者的解释,如果有人现在能解释概念,对明天将要学习的学生来说会更容易。因此,任何人谁可以解释这详细和如何上传过程的工作和一些步骤,以供参考,将非常感谢。 注意:假
我正在尝试将发送到我的 Rails 服务器。但是,当我尝试构建它时,它会崩溃并给我错误 03-25 09:44:50.001 W/system . err£Java . util . concurrent . execution exception:Java . lang . nosuchmethod error:没有静态方法create(Ljava/lang/String;[Lorg/Apach
我必须向服务器发送一个映像(我认为最好的选择是使用HttpURLConnection)并从它接收一个字符串答案。在我读过的不同的文档和web站点中,我研究了这样做的最佳方法是使用多伙伴关系。 1_做它是最好的解决方案吗? 2_我有一个错误,说Android Studio无法解析符号'multipartentity'。我读到,要解决它,我必须下载外部库。哪些是它们,我如何下载它们? 3_为此,我想在