共享主机问题 - 没有根目录访问 - 文件上载

时间:2017-06-16 03:47:42

标签: php file-upload upload

当我尝试从我的托管小组上传到/public_html/支持小组时说:

  

。不幸的是,我有一些坏消息。由于共享托管限制,您似乎无法通过脚本移动该文件。为了拥有" www-data"您需要拥有VPS包的权限,因此您可以获得root权限。

所以我似乎无法上传到$PICTURE_UPLOAD_DIR = '/public_html/my_uploaded/'; $PICTURE_MIMES = [ 'jpg' => 'image/jpeg', 'png' => 'image/png' ]; $image = $_FILES['image']; $imagepath = $image['tmp_name']; // Undefined | Multiple Files | $_FILES Corruption Attack // If this request falls under any of them, treat it invalid. if (!isset($image['error']) || is_array($image['error'])) { $ojson['error'] = 'Invalid parameters'; $finish(); } // Check $image['error'] value. switch ($image['error']) { case UPLOAD_ERR_OK: break; case UPLOAD_ERR_NO_FILE: $ojson['error'] = 'No file sent'; $finish(); case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $ojson['error'] = 'Exceeded filesize limit.'; $finish(); default: $ojson['error'] = 'Unknown errors.'; $finish(); } // You should also check filesize here. $size = filesize($imagepath); // $size = $image['size']; // dont trust $_FILES if ($size > 1000000) { $ojson['error'] = 'Exceeded filesize limit.'; $finish(); } // DO NOT TRUST $_FILES['image']['mime'] VALUE !! // Check MIME Type by yourself. $finfo = new finfo(FILEINFO_MIME_TYPE); $mime = $finfo->file($imagepath); // if ($ext = array_search($mime, $PICTURE_MIMES) === false) { // this doesnt set $ext if (false === $ext = array_search($mime, $PICTURE_MIMES)) { $ojson['error'] = 'Invalid file format.'; $finish(); } $ojson['$ext'] = $ext; $ojson['$mime'] = $mime; // generate random file name while (true) { $filename = generateRandomString().'.'.$ext; $pathtarget = $PICTURE_UPLOAD_DIR.$filename; if (!file_exists($pathtarget)) break; } $ojson['$pathtarget'] = $pathtarget; $ojson['$imagepath'] = $imagepath; // $getimg = getimagesize($imagepath); if(is_uploaded_file($imagepath)){ $ojson['isuploaded'] = true; } else { $ojson['NOTUPLOADED'] = true; } if(move_uploaded_file($imagepath, $pathtarget)) { $ojson['ok move'] = 'ok'; } else { $ojson['failed move'] = error_get_last(); } 之外。

但是,当我尝试上传到public_html时,它仍然失败,这是我的代码:

move_uploaded_file

error_get_last()不断失败, %% example 1.1 langrange interpolation %(Matlab) % X : interpolation points % Y : value of f(X) % x : points where we want an evaluation of P(x), % where P is the interpolator polynomial x = [-1:0.01:1]; X = [-1:0.20:1]; y = 1./(1+25*x.^2); Y = 1./(1+25*X.^2); pol = lagrange_interp(X,Y,x) %plot(x,pol,'k',x,y,'k--',X,Y,'k.'); legend('Lagrange Polynomial','Expected behavior','Data Points'); function polynomial = lagrange_interp(X,Y,x) %(Matlab) n = length(X); phi = ones(n,length(x)); polynomial = zeros(1,length(x)); i = 0; j = 0; for i = [1:n] for j = [1:n] if not(i==j) phi(i,:) = phi(i,:).*(x-X(j))./(X(i)-X(j)); end; end; end; for i = [1:n] polynomial = polynomial + Y(i)*phi(i,:); end; !Lagrange Interpolation example !(Fortran) program Lagrange implicit none integer:: i integer, parameter:: n=10 integer, parameter:: z=201 integer, parameter:: z1=11 real, parameter:: delta=.01 real,parameter:: delta2=.20 real, dimension(1:z):: x,G,y,H real*8, dimension(1:n):: M real*8, dimension(1:n):: linterp(n) x(1)=-1 G(1)=-1 do i=2,z x(i)=x(i-1)+delta y(i)=1/(1+25*(x(i)**2)) end do print*, "The one-dimensional array x is:", x(1:z) print*, "The one dimensional array y is", y(1:z) do i=2,z1 G(i)=G(i-1)+delta2 H(i)=1/(1+25*(G(i)**2)) end do print*,"The other one-dimensional array G is:", G(1:z1) print*, "Then the one dimensional array H is", H(1:z1) M=linterp(1:n) print*, M(1:n) end program !Lagrange interpolation polynomial function !(Fortran) real*8 function linterp(n) implicit none integer,parameter:: n=10 integer, dimension(1:n):: poly,pol integer:: i, j i=0 j=0 do i=1,n do j=1,n if (i/=j)then poly(i,j)=poly(i,j)*(x(i)-G(j))/(y(i)-G(j)) end if end do end do print*, poly(i,j) do i=1,n pol(i)=pol(i)+H(i)*poly(i,j) end do print*, pol(1:n) end function 始终打印:

  

move_uploaded_file():无法移动' / tmp / php7G5KMy' to' /public_html/my_uploaded/Q9BEsUkDre.jpg'

isuploaded总是如此。我很困惑,请你帮忙。

0 个答案:

没有答案