GVKun编程网logo

PHP – 将文件转换为二进制文件并使用HTTP POST发送它(php文件转换器)

11

此处将为大家介绍关于PHP–将文件转换为二进制文件并使用HTTPPOST发送它的详细内容,并且为您解答有关php文件转换器的相关问题,此外,我们还将为您介绍关于android–使用HTTPPOST发送

此处将为大家介绍关于PHP – 将文件转换为二进制文件并使用HTTP POST发送它的详细内容,并且为您解答有关php文件转换器的相关问题,此外,我们还将为您介绍关于android – 使用HTTP POST发送文件> 1MB、AngularJS $http-post - 将二进制文件转换为 excel 文件并下载、angularjs – 如何使用http在角度js中下载二进制文件、asp.net – 无法将许可证文件转换为二进制资源的有用信息。

本文目录一览:

PHP – 将文件转换为二进制文件并使用HTTP POST发送它(php文件转换器)

PHP – 将文件转换为二进制文件并使用HTTP POST发送它(php文件转换器)

我将使用PHP转换一些文件并将其作为HTTP POST请求的一部分发送.
我的部分代码是:

$context = stream_context_create(array(
        'http' => array(
            'method' => 'POST','header' => "Content-type: " . $this->contentType."",'content' => "file=".$file
        )
            ));
    $data = file_get_contents($this->url,false,$context);

变量$file是否必须是我要发送的文件的字节表示?

并且这是在不使用表单的情况下在PHP中发送文件的正确方法吗?你有线索吗?

另外,使用PHP将文件转换为字节表示的方法是什么?

解决方法

您可能会发现使用CURL更容易,例如:

function curlPost($url,$file) {
  $ch = curl_init();
  if (!is_resource($ch)) return false;
  curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER,0 );
  curl_setopt( $ch,CURLOPT_FOLLOWLOCATION,CURLOPT_URL,$url );
  curl_setopt( $ch,CURLOPT_POST,1 );
  curl_setopt( $ch,CURLOPT_POSTFIELDS,'@' . $file );
  curl_setopt( $ch,CURLOPT_RETURNTRANSFER,CURLOPT_VERBOSE,0 );
  $response = curl_exec($ch);
  curl_close($ch);
  return $response;
}

其中$url是您要发布到的位置,$file是您要发送的文件的路径.

android – 使用HTTP POST发送文件> 1MB

android – 使用HTTP POST发送文件> 1MB

我正在将我的Android应用程序中的视频和音频文件发送到Wampserver,其中一些可能会变得非常大,当文件大小超过1MB时,我倾向于出现OutofMemory问题.

我将每个文件单独转换为字节流.我认为字节流太大,因此OutofMemory.

如何阻止此错误发生?

解决方法:

使用此处建议的Maxium链接:

Uploading files to HTTP server using POST on Android.

然后我发现这个Out of Memory error in android来修复错误.

更换:

while (bytesRead > 0)
{
    outputStream.write(buffer, 0, bufferSize);
    bytesAvailable = fileInputStream.available();
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}

有:

while (bytesRead > 0){
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    byte byt[]=new byte[bufferSize];
    fileInputStream.read(byt);
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
    outputStream.write(buffer, 0, bufferSize);
}

AngularJS $http-post - 将二进制文件转换为 excel 文件并下载

AngularJS $http-post - 将二进制文件转换为 excel 文件并下载

我在 Angular JS 中创建了一个应用程序,用于通过 $http post 下载 Excel 工作簿。

在下面的代码中,我以 JSON 的形式传递信息,并通过有角度的 $http 帖子将其发送到服务器 REST Web 服务 (java)。Web 服务使用来自 JSON 的信息并生成 Excel 工作簿。在 $http post 的成功正文中的响应中,我在该数据变量中获取二进制数据,但不知道如何将其转换并下载为 Excel 文件。

谁能告诉我一些将二进制文件转换为 Excel 文件并下载的解决方案?

我的代码如下所示:

$http({        url: ''myweb.com/myrestService'',        method: "POST",        data: json, //this is your json data string        headers: {           ''Content-type'': ''application/json''        }    }).success(function (data, status, headers, config) {        // Here i''m getting excel sheet binary datas in ''data''     }).error(function (data, status, headers, config) {    });

答案1

小编典典

只是注意到由于 IE8/9 而无法使用它,但我还是会推送提交……也许有人觉得它有用

这实际上可以通过浏览器完成,使用blob. 注意 Promise 中的responseType和 代码success

$http({    url: ''your/webservice'',    method: "POST",    data: json, //this is your json data string    headers: {       ''Content-type'': ''application/json''    },    responseType: ''arraybuffer''}).success(function (data, status, headers, config) {    var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});    var objectUrl = URL.createObjectURL(blob);    window.open(objectUrl);}).error(function (data, status, headers, config) {    //upload failed});

虽然它存在一些问题,例如:

  1. 它不支持IE 8 和 9:
  2. 它会打开一个弹出窗口以打开objectUrl可能被阻止的人
  3. 生成奇怪的文件名

它确实奏效了!

斑点 我测试过的 PHP 中的服务器端代码如下所示。我确定您可以在 Java 中设置类似的标头:

$file = "file.xlsx";header(''Content-disposition: attachment; filename=''.$file);header(''Content-Length: '' . filesize($file));header(''Content-Transfer-Encoding: binary'');header(''Cache-Control: must-revalidate'');header(''Pragma: public'');echo json_encode(readfile($file));

编辑 20.04.2016

浏览器使以这种方式保存数据变得更加困难。一个不错的选择是使用filesaver.js。它为 提供了一个跨浏览器的实现saveAs,它应该替换success上面 Promise 中的一些代码。

angularjs – 如何使用http在角度js中下载二进制文件

angularjs – 如何使用http在角度js中下载二进制文件

我想使用$http下载exe文件,它在我控制数据时显示我,但我无法下载它.

$http({
        url: url,method: "GET",headers: {
           'Content-type': 'application/json'
        }
    }).success(function (data,status,headers,config) {
        console.log(data);

        window.open(objectUrl);
    }).error(function (data,config) {
        //upload Failed
    });

任何帮助,将不胜感激.

解决方法

Given code will help you to download exe file as well as to check
browser compatibility.

var ieEDGE = navigator.userAgent.match(/Edge/g);
var ie = navigator.userAgent.match(/.NET/g); // IE 11+
var oldIE = navigator.userAgent.match(/MSIE/g); 

var blob = new window.Blob([data.data],{ type: 'application/x-msdownload' });

if (ie || oldIE || ieEDGE) {

    var fileName="filename"+'.exe';
    window.navigator.msSaveBlob(blob,fileName);
}
else {

    var file = new Blob([ data.data ],{
        type : 'application/x-msdownload'
    });

    var fileURL = URL.createObjectURL(file);
    var a         = document.createElement('a');
    a.href        = fileURL; 
    a.target      = '_blank';
    a.download    = "filename"+'.exe';
    document.body.appendChild(a);

    a.click();

}
//Successfully Downloaded

asp.net – 无法将许可证文件转换为二进制资源

asp.net – 无法将许可证文件转换为二进制资源

我有我的旧Web Applicatoin,在.Net Framework 2.0中开发.现在我想在VS2012中打开它,它给我以下错误..

Could not transform licenses file into a binary resource.  (1) : error LC0004 :
Exception occurred creating type 'Infragistics.WebUI.WebDataInput.WebDateTimeEdit,Infragistics.WebUI.WebDataInput.v5.1,Version=5.1.20051.37,Culture=neutral,PublicKeyToken=7dd5c3163f2cd0cb System.ComponentModel.LicenseException: 
Unable to locate license assembly.at System.ComponentModel.LicenseManager.CreateWithContext(Type type,LicenseContext creationContext,Object[] args)
at System.Tools.LicenseCompiler.GenerateLicenses(String fileContents,String targetPE,ITypeResolutionService resolver,DesigntimeLicenseContext ctx)'

解决方法

下午好,

当我们已经分支了一个解决方案(svn)以便在需要时用于补丁生产时,这种情况就发生了.当我从分支机构构建解决方案时,它给了我一个类似的错误,谈论基于索引(零)等等等等等等.事实证明我的.licx文件上有一个空行,导致错误.删除空行可解决问题.

只是发布以防万一这有助于其他人.

问候,

今天关于PHP – 将文件转换为二进制文件并使用HTTP POST发送它php文件转换器的分享就到这里,希望大家有所收获,若想了解更多关于android – 使用HTTP POST发送文件> 1MB、AngularJS $http-post - 将二进制文件转换为 excel 文件并下载、angularjs – 如何使用http在角度js中下载二进制文件、asp.net – 无法将许可证文件转换为二进制资源等相关知识,可以在本站进行查询。

本文标签: