html文件上传表单问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html文件上传表单问题相关的知识,希望对你有一定的参考价值。

<input type="file" name="file" id="file" /> 是选取文件的,假如我每次要上传的文件都是C:\123.txt ,我能不能将路径封装在表单里,这样不用每次选取文件,直接提交就ok了。

参考技术A 不可以,别费心思想了,这个功能不可能实现.假设可以预知你的一些个人隐私信息的路径,那么我不是很容易收集到你的这个文件了么? 参考技术B 根据W3C标准是不可以的
但写个木马之类的程序就可以
这个找个高手问问吧本回答被提问者采纳

使用 HTML 表单、cURL 和 PHP 将文件上传到 Imageshack API

【中文标题】使用 HTML 表单、cURL 和 PHP 将文件上传到 Imageshack API【英文标题】:Uploading files to Imageshack API using HTML form, cURL and PHP 【发布时间】:2013-01-07 18:22:47 【问题描述】:

我在将文件上传到 Imageshack 的 API 时遇到了一些问题。我使用 multipart/form-data 表单来获取文件。

index.php:

<form method="post" enctype="multipart/form-data" action="upload.php">
    <input type="file" name="fileupload"/>
    <input type="submit" value="Go"/>
</form>

通常我对此不会有任何问题,但是数据必须发送到http://imageshack.us/upload_api.php,并且响应会在他们服务器上的 XML 样式的 HTML 页面中返回,所以我真的无能为力。所以我决定通过 PHP cURL 脚本传递表单并在同一页面上获得响应。

上传.php:

<?php
    $url = 'http://imageshack.us/upload_api.php';
    $key = '4BEILRTV5ff57ecb70867e8becb2c4b5e695bdb4';
    $max_file_size = '5242880';
    $temp = $_FILES["fileupload"]["tmp_name"];
    $name = $_FILES["fileupload"]["name"];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);

    $post = array(
        "fileupload" => '@' . $temp,
        "key" => $key,
        "max_file_size" => $max_file_size
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = curl_exec($ch);
    echo $response;
?>

起初我收到一堆错误,但现在我没有得到任何回应。甚至没有错误。

任何有关使用此方法的建议都会很棒!

【问题讨论】:

什么错误?删除@以便您可以看到它们 @vodich 发布的代码中没有错误抑制运算符 【参考方案1】:

我必须在帖子选项中包含“格式”=> 'json' 并使用 json_decode 来解析信息。这是 upload.php 脚本。

<?php
    $url = 'http://imageshack.us/upload_api.php';
    $key = '4BEILRTV5ff57ecb70867e8becb2c4b5e695bdb4';
    $max_file_size = '5242880';
    $temp = $_FILES["fileupload"]["tmp_name"];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_URL, $url);

    $post = array(
        "fileupload" => '@' . $temp,
        "key" => $key,
        "format" => 'json',
        "max_file_size" => $max_file_size,
        "Content-type" => "multipart/form-data"
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = curl_exec($ch);
    $json_a=json_decode($response,true);
    echo $json_a[links][image_link];
?>

【讨论】:

以上是关于html文件上传表单问题的主要内容,如果未能解决你的问题,请参考以下文章

支持文件上传的html表单

HTML表单完整文件夹上传[重复]

如何使用节点 js 流和 HTML 表单上传文件?

asp.net开发,form表单,file文件上传

通过 HTML 表单上传整个目录

html 表单中 上传 文件格式