Javascript 使用ajax和php上传文件时出错
我正在写一份登记表,包括10个文本输入和5个文件输入。表单使用jqueryajax将整个数据发布到服务器。我也在使用FormData进行同样的操作。PHP是服务器端语言 整个代码在localhost(XAMPP)上正常工作。但是当我上传到我的Web服务器时,php getimagesize()函数失败,出现错误:文件名不能为空Javascript 使用ajax和php上传文件时出错,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在写一份登记表,包括10个文本输入和5个文件输入。表单使用jqueryajax将整个数据发布到服务器。我也在使用FormData进行同样的操作。PHP是服务器端语言 整个代码在localhost(XAMPP)上正常工作。但是当我上传到我的Web服务器时,php getimagesize()函数失败,出现错误:文件名不能为空 本地主机上的Php版本:5.3 Web服务器上的Php版本:5.2 HTML代码 <form name="drvregister" id="drvregiste
- 本地主机上的Php版本:5.3
- Web服务器上的Php版本:5.2
<form name="drvregister" id="drvregister" action="api/driver" enctype="multipart/form-data" class="form-horizontal">
<div class="form-group">
<label for="firstname" class="col-lg-3 control-label">Full Name</label>
<div class="col-lg-4">
<input type="text" class="form-control" id="firstname" name="firstname" value="" placeholder="First Name" required="" title="Please enter your First Name">
</div>
<div class="col-lg-4">
<input type="text" class="form-control" id="lastname" name="lastname" value="" placeholder="Last Name" required="" title="Please enter your Last Name">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="emailid" class="col-lg-3 control-label">Email Address</label>
<div class="col-lg-6">
<input type="text" class="form-control" id="emailid" name="emailid" value="" placeholder="Email ID" required="" title="Please enter your Email ID">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="dob" class="col-lg-3 control-label">Date of Birth</label>
<div class="col-lg-4">
<input type="datetime" class="form-control datepicker" id="dob" name="dob" value="" placeholder="dd/mm/yyyy" required="" title="Please enter your Date of Birth">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="gender" class="col-lg-3 control-label">Gender</label>
<div class="col-lg-5">
<div class="radio">
<label>
<input type="radio" class="radio" id="gender" name="gender" value="male" required="" title="Please mention your Gender"> Male
</label>
</div>
<div class="radio">
<label>
<input type="radio" class="radio" id="gender" name="gender" value="female" required="" title="Please mention your Gender"> Female
</label>
</div>
<span class="help-block"></span>
</div>
</div>
<div class="form-group">
<label for="address" class="col-lg-3 control-label">Address</label>
<div class="col-lg-5">
<textarea class="form-control" rows="4" id="address" name="address" value="" placeholder="Address" required="" title="Please enter your Address"></textarea>
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="vehiclenumber" class="col-lg-3 control-label">Vehicle Reg. Number</label>
<div class="col-lg-4">
<input type="text" class="form-control" id="vehiclenumber" name="vehiclenumber" value="" placeholder="Vehicle Registration Number" required="" title="Please enter your vehicle registration number">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="licensenumber" class="col-lg-3 control-label">License Number</label>
<div class="col-lg-4">
<input type="text" class="form-control" id="licensenumber" name="licensenumber" value="" data-toggle="tooltip" data-placement="left" placeholder="License Number" required="" title="Please enter your License Number">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="handset" class="col-lg-3 control-label">Handset Model</label>
<div class="col-lg-4">
<input type="text" class="form-control" id="handset" name="handset" value="" data-toggle="tooltip" data-placement="left" placeholder="Handset Model" required="" title="Please enter your Handset Model">
</div>
<span class="help-block"></span>
</div>
<fieldset class="docup">
<legend class="docup">Upload Documents</legend>
<div class="form-group">
<label for="license" class="col-lg-3 control-label">License</label>
<div class="col-lg-7">
<input type="file" class="form-control file" accept="image/*" id="license" name="license" value="" placeholder="License" required="" title="Please Upload your License SoftCopy">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="pancard" class="col-lg-3 control-label">PAN Card</label>
<div class="col-lg-7">
<input type="file" class="form-control file" accept="image/*" id="pancard" name="pancard" value="" placeholder="PAN Card" required="" title="Please Upload your PAN Card SoftCopy">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="insurance" class="col-lg-3 control-label">Bike Insurance Papers</label>
<div class="col-lg-7">
<input type="file" class="form-control file" accept="image/*" id="insurance" name="insurance" value="" placeholder="Bike Insurance Papers" required="" title="Please Upload your Bike Insurance Papers SoftCopy">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="bikepic" class="col-lg-3 control-label">Picture of your Bike</label>
<div class="col-lg-7">
<input type="file" class="form-control file" accept="image/*" id="bikepic" name="bikepic" value="" placeholder="Picture of your Bike" required="" title="Please Upload Picture of your Bike">
</div>
<span class="help-block"></span>
</div>
<div class="form-group">
<label for="addressproof" class="col-lg-3 control-label">Address Proof</label>
<div class="col-lg-7">
<input type="file" class="form-control file" accept="image/*" id="addressproof" name="addressproof" value="" placeholder="Address Proof" required="" title="Please Upload your Address Proof SoftCopy">
</div>
<span class="help-block"></span>
</div>
</fieldset>
<div class="form-group">
<label id="captchaOperation" class="col-lg-3 control-label"></label>
<div class="col-lg-3">
<input type="text" class="form-control" name="captcha"/>
</div>
<span class="help-block"></span>
</div>
<div class="row">
<div class="col-md-8 form-group">
<label><input type="checkbox" name="agree" id="agree"> I Agree to terms and conditions</label>
<span class="help-block"></span>
</div>
</div>
<div class="row">
<div class="col-md-2 col-md-offset-2 form-group">
<button id="submit" type="submit" class="btn btn-success">Register</button>
</div>
<div class="col-md-2 col-md-offset-2 form-group">
<button id="reset" type="reset" class="btn btn-default">Reset</button>
</div>
</div>
</form>
Php代码
public function registerdriver() {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$emailid = $_POST['emailid'];
$dob = $_POST['dob'];
$gender = $_POST['gender'];
$address = $_POST['address'];
$vehiclenumber = $_POST['vehiclenumber'];
$licensenumber = $_POST['licensenumber'];
$handset = $_POST['handset'];
$parts = explode('/', $dob);
$date = "$parts[2]-$parts[1]-$parts[0]";
$licensefile_ext = strrchr($_FILES["license"]["name"], '.');
$pancardfile_ext = strrchr($_FILES["pancard"]["name"], '.');
$insurancefile_ext = strrchr($_FILES["insurance"]["name"], '.');
$bikepicfile_ext = strrchr($_FILES["bikepic"]["name"], '.');
$addressprooffile_ext = strrchr($_FILES["addressproof"]["name"], '.');
$licensefile = $content_path . date("Y-m-d") . '/' . md5(basename($_FILES["license"]["name"])) . $licensefile_ext;
$pancardfile = $content_path . date("Y-m-d") . '/' . md5(basename($_FILES["pancard"]["name"])) . $pancardfile_ext;
$insurancefile = $content_path . date("Y-m-d") . '/' . md5(basename($_FILES["insurance"]["name"])) . $insurancefile_ext;
$bikepicfile = $content_path . date("Y-m-d") . '/' . md5(basename($_FILES["bikepic"]["name"])) . $bikepicfile_ext;
$addressprooffile = $content_path . date("Y-m-d") . '/' . md5(basename($_FILES["addressproof"]["name"])) . $addressprooffile_ext;
$this->verifyimage(); //Error Line
}
private function verifyimage() {
$imageflag = getimagesize($_FILES["license"]["tmp_name"]); //Function breaks here "Filename cannot be empty"
if ($imageflag === false)
$this->returnerror("Invalid Image");
$imageflag = getimagesize($_FILES["pancard"]["tmp_name"]);
if ($imageflag === false)
$this->returnerror("Invalid Image");
$imageflag = getimagesize($_FILES["insurance"]["tmp_name"]);
if ($imageflag === false)
$this->returnerror("Invalid Image");
$imageflag = getimagesize($_FILES["bikepic"]["tmp_name"]);
if ($imageflag === false)
$this->returnerror("Invalid Image");
$imageflag = getimagesize($_FILES["addressproof"]["tmp_name"]);
if ($imageflag === false)
$this->returnerror("Invalid Image");
}
printf($\u文件)提供以下输出
Array
(
[license] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[pancard] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[insurance] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[bikepic] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[addressproof] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
)
检查您是否有在目录中上载的适当权限…我有完全权限。问题在于getimagesize(),它在web服务器上报告为Filename empty,但它在我的PC上工作。web服务器上返回的$\u文件是什么?首先,您检查一下,您已经在服务器上获得了文件($\u文件)您的意思是回显文件名吗。我曾经尝试注释掉getimagesize(),但是函数在move\u上传的\u file()中失败。我将尝试回显文件名并返回
Array
(
[license] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[pancard] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[insurance] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[bikepic] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
[addressproof] => Array
(
[name] => 603842_893248767384667_7569544565024956810_n.jpg
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
)